我需要找出如何在给定半径的2个点之间用OpenGL绘制圆弧,在OpenGL中有没有办法做到这一点,或者找到我需要绘制圆弧的中心点,这样两个点都可以与给定半径相连? :)
附加的屏幕截图:https://i.imgur.com/LLP78Ak.png
答案 0 :(得分:3)
这是一个简单但完整且经过测试的opengl程序,可演示您所寻找的声音。请注意,对于半径为x的两个点之间的弧线是什么,没有一个唯一的答案,因为弧线可以沿两个方向中的任何一个弯曲。
请特别注意 second createArc 函数重载,因为它代表了答案的核心,尽管它调用了 first createArc 函数重载即可完成工作。
编辑:我已经意识到我没有在较早的答案中解释“两个角度之间的弧度”的歧义(从0到90的弧度可以是直接的,也可以一直是)。我已经更新了代码,以定义您是对较小的圆弧还是较大的圆弧感兴趣。
int n, i;
char currentDigit;
unsigned long int sum, currentDigitInt;
printf("Enter the number of digits in the Hexadecimal number:");
scanf_s("%d", &n);
sum = 0;
printf("Enter the Hexadecimal number:\n");
for (i = n - 1; i >= 0; i--) {
scanf_s(" %c", ¤tDigit);
if (currentDigit >= 'a') {
currentDigitInt = (currentDigit - 'a') + 10;
}
else if (currentDigit >= 'A') {
currentDigitInt = (currentDigit - 'A') + 10;
}
else
currentDigitInt = currentDigit - '0';
sum += currentDigitInt * pow(16, i);
}
printf("The decimal number is: %u", sum);
答案 1 :(得分:2)
我觉得这更多是一个数学问题。
如果您具有两点的坐标,则假定:
,给定的半径为'R'
然后可以使用
来计算中心的坐标
其中
,
应有两个中心,一个中心为上弧,另一个为下弧。 另一个中心可以通过
找到
现在,您可以使用acos()
库中包含的<cmath>
函数来找到反余弦值。