gpt4 book ai didi

c++ - 素描圆柱体

转载 作者:行者123 更新时间:2023-11-30 20:41:32 26 4
gpt4 key购买 nike

Possible Duplicate:
sketching object near to each other

我想在屏幕上绘制下图;

             |----|   sphere
|----|
/ /
/ /
/ / cylinder
/ /
/ / angle = 45
| |
| |
| | cylinder (i)
| |
| |
| |
----------- cylinder
-----------

为了绘制标有(i)的圆柱体,我使用了下面的代码,你能帮我看看我的错误是什么,因为我无法绘制(i)吗?

glTranslatef(0.0f, 10.0f, 400.0f ) ;
glColor3f ( 0.0f, 1.0f, 1.0f ) ;
glRotatef (90.0f, 1.0f, 1.0f, 0.0f );
gluCylinder(quadric,0.0f,200.0f,100.0f,32,32);
glTranslatef(0.0f, 10.0f, -400.0f ) ;

最佳答案

我不想在这里成为坏人,所以让我解释一下,为什么如果没有上下文,这段代码就毫无值(value),以及为什么你需要理解。

让我们逐行浏览一下这个片段。一切都始于

glTranslatef(0.0f, 10.0f, 400.0f ) ;

第一个问题是:这个操作是在什么矩阵上进行的。可能是模型 View ,但我们不知道。调用 glTranslatef 之前的矩阵是什么? OpenGL 矩阵运算有点像 x86 汇编,因为它们用运算结果替换堆栈上的矩阵。

glColor3f ( 0.0f, 1.0f, 1.0f ) ;

这设置了颜色状态。当然。通常将此调用与要绘制的几何图形分组,而不是将其放在代码中间的某个位置。

glRotatef (90.0f, 1.0f, 1.0f, 0.0f );

绕轴 (1, 1, 0) 旋转,即就像将一根轴穿过物体,穿过局部原点并朝向点 (1, 1, 0),然后将其旋转 90°围绕这个轴。

gluCylinder(quadric,0.0f,200.0f,100.0f,32,32);

现在绘制了一个圆柱体,它将首先旋转,然后平移,然后......只有您知道,因为您省略了在开始渲染框架时重置模型 View 矩阵的部分。

glTranslatef(0.0f, 10.0f, -400.0f ) ;

最终的 glTranslatef 对绘制圆柱体没有任何影响。

<小时/>

你现在看到问题了吗?你问的是一个非常具体的问题,这显然是家庭作业,在里面放一些随机代码,只是问“如何画它”,而不知道你实际上在做什么。

如果您不先掌握基础知识,我们就无法帮助您。我们很乐意帮助您到达那里。从绘制一些简单的东西开始,例如以窗口为中心的三角形。

关于c++ - 素描圆柱体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13526749/

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