我想用opengl画一个弧。弧应该从特定点开始并在给定点结束。给定半径,弧的中心和弧长,起始角和终止角。 我试过以下功能:
for (double theta = start_angle1; theta < end_angle1; theta += angle_increment)
{
glVertex2f((arcCenX+ r * sinf(theta)),(arcCenY+ r * cosf(theta)));
}
此功能适当地给出弧,但弧的起点不同。 如何指定弧的起点?
编辑:我也试过这个
for ( angleIndex = 0; angleIndex < arc_len; angleIndex = angleIndex+arcSegmentIndex )
{
glVertex2f((x + ( cosf( start_angle1 + angleIndex ) )* r),
(y + ( sinf( start_angle1 + angleIndex ) )* r));
}
但它也无效。
答案 0 :(得分:1)
应该是
x = r cos(0)
y = r sin(0)
它基本上是圆的参数方程所以
{{1}}
其中&#34; r&#34;是圆的半径。你交换了x和y坐标,或许是导致问题的原因。
编辑: - 要清除它,弧的起点取决于你输入的第一个θ值。所以如果例如进入theta的第一个值是90度,那么弧直接从中心的中心开始距离为r的圆圈。