如何在opengl中以给定的起点绘制弧?

时间:2017-08-06 12:34:39

标签: c++ opengl

我想用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));
}

但它也无效。

1 个答案:

答案 0 :(得分:1)

应该是

x = r cos(0)
y = r sin(0)

它基本上是圆的参数方程所以

{{1}}

其中&#34; r&#34;是圆的半径。你交换了x和y坐标,或许是导致问题的原因。

编辑: - 要清除它,弧的起点取决于你输入的第一个θ值。所以如果例如进入theta的第一个值是90度,那么弧直接从中心的中心开始距离为r的圆圈。