半径在2点之间的弧

时间:2019-04-27 00:03:15

标签: c++ opengl

我需要找出如何在给定半径的2个点之间用OpenGL绘制圆弧,在OpenGL中有没有办法做到这一点,或者找到我需要绘制圆弧的中心点,这样两个点都可以与给定半径相连? :)

附加的屏幕截图:https://i.imgur.com/LLP78Ak.png

2 个答案:

答案 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", &currentDigit);

    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)

我觉得这更多是一个数学问题。

如果您具有两点的坐标,则假定: formula

,给定的半径为'R'

然后可以使用

来计算中心formula1的坐标

formula2

其中

formula3

formula

应有两个中心,一个中心为上弧,另一个为下弧。 另一个中心可以通过

找到

foo

现在,您可以使用acos()库中包含的<cmath>函数来找到反余弦值。