gpt4 book ai didi

c++ - 如何在opengl中以给定的起点绘制弧线?

转载 作者:行者123 更新时间:2023-11-30 05:10:43 27 4
gpt4 key购买 nike

我想用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 坐标,也许这就是导致问题的原因。

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

关于c++ - 如何在opengl中以给定的起点绘制弧线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45532090/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com