如何在opengl中绘制具有给定起点的弧线?

How to draw an arc with given starting point in opengl?

本文关键字:起点 opengl 绘制      更新时间:2023-10-16

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

但它也不起作用。

它应该是

glVertex2f((arcCenX+ r * cosf(theta)),(arcCenY+  r * sinf(theta)));

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

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

其中"r"是圆的半径。您交换了x和y坐标,也许这就是导致问题的原因。

编辑:- 为了清除它,弧的起点取决于您输入的第一个θ值。 因此,例如,如果进入θ的第一个值是90度,那么弧从圆心正上方开始,距离r。