【问题标题】:using spherical coordinates in opengl在opengl中使用球坐标
【发布时间】:2020-08-01 18:51:22
【问题描述】:

我正在尝试使用球坐标围绕中心点绘制点。我知道这不是在 OpenGL 中绘制球体的最有效方法,但我想把它作为一种更好地理解球坐标的方法。

我想通过每个点以某个角度步进,因此我有一个嵌套的 for 循环遍历 theta 0-360 和 phi 0-360,我试图获取每个步骤的笛卡尔坐标并显示它作为一个点。

到目前为止我有这个:

float r = 1.0;
for( float theta = 0.0; theta < 360.0; theta += 10.0){
    for(float phi = 0.0; phi < 360.0; phi += 10.0){

        float x = r * sin(theta) * cos(phi);
        float y = r * sin(theta) * sin(phi);
        float z = r * cos(theta);
    }
}

我存储这些点并显示它们。显示功能工作正常,因为我以前用它来显示其他点结构,但由于某种原因我无法让它工作。

我还尝试将角度从度数转换为弧度:

float rTheta = theta * M_PI * 180.0;
float rPhi = phi * M_PI * 18.0;

sin()cos() 都使用弧度,但结果相同。

我是不是做错了什么并且严重误解了什么?

【问题讨论】:

    标签: c++11 math opengl spherical-coordinate


    【解决方案1】:

    在角度x的角度到弧度的转换中,正确的公式是x * M_PI / 180.

    【讨论】:

    • 谢谢,这引起了很多问题。我也意识到由于我自己的愚蠢以及这个-__-,我没有看到实际的输出
    猜你喜欢
    • 2012-07-18
    • 1970-01-01
    • 2013-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-09
    • 2011-11-21
    • 2020-07-19
    相关资源
    最近更新 更多