gpt4 book ai didi

c++ - 你如何将世界坐标系的自然单位转换为opengl单位?

转载 作者:太空宇宙 更新时间:2023-11-04 06:10:42 24 4
gpt4 key购买 nike

<分区>

我正在构建一个物理引擎,因此,我也在学习 opengl 以便能够可视化物理引擎正在做什么。我想知道如何将自然单位(例如 1 米、1 英寸等)转换为 opengl 单位。

我做了一些研究,似乎并没有真正定义opengl单元。这是否意味着我可以将数字 0.01f 映射为等于 1 厘米。因此,如果我有一个以 cx 和 cy 为中心的圆,并且我希望它下降 1 厘米,那么我可以执行以下操作吗?:

float cx = 0.05f;
float cy = 0.05f;
cy -= .01;

到目前为止,这里是图形的玩具代码的一些片段:

void drawCircle() {
float r = 0.05;
int num_segments = 1000;

glClearColor(0,0,0,0);
glClear(GL_COLOR_BUFFER_BIT);

glColor3f(1.0,1.0,1.0);

glBegin(GL_LINE_LOOP);

float thetaStep = 2.0f*M_PI/num_segments;
for(float theta = 0; theta < 2.0f*M_PI; theta += thetaStep) {
float x = r * cosf(theta);
float y = r * sinf(theta);

glVertex2f(x+cx, y+cy);
}

glEnd();
glFlush();
}

GLvoid Timer(int value) {
cy -= 0.01;
if(value) {
glutPostRedisplay();
}

glutTimerFunc(30, Timer, value);
}

以上代码片段有效。它将以 0.01 opengl 单位的恒定速率向下移动球。

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