【发布时间】:2012-11-23 10:02:16
【问题描述】:
我想在屏幕上画下图;
|----| 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 ) ;
【问题讨论】:
-
你之前问过这个。那时这不是一个真正的问题,现在也不是。
-
也许您不应该如此努力地解决这个特殊问题,而应先处理更基本的步骤:设置窗口和上下文、视口、投影、模型视图和转换。
-
您的错误可能是,您只是将一些随机代码复制'n'粘贴在一起,没有清楚地了解它实际上做了什么。这个“Cargo Cult Programming”,永远不会让你走得太远,你甚至不应该尝试把它交出来,因为一些 TA 倾向于在这方面给出负面评价(当我是 TA 时,我确实给出了负面评价,每当我遇到 Cargo Cult程序)。
-
@user1845897:让你不再试图作弊,而是真正学习你应该学习的东西。你可能认为我对你很刻薄,但实际上我希望你通过那门课。但为此,您必须了解您的工作。仅向您展示一些代码无济于事;读完之后你也不会变得更聪明。
-
我建议和 datenwolf 一样:一般来说,如果您遇到问题,请从代码中退后一步,想象一下您想要实现的目标。 在这种 3D 问题的情况下 闭上眼睛,在脑海中组合场景。一步步。想象一下气缸。它的方向是什么?这是正确的吗?如果没有,你必须旋转它。 位置现在正确吗?如果没有,您必须将其“推”到正确的位置。为每个步骤找到合适的矩阵,并为每个部分执行此操作。第一个将是艰难的。第二个并不容易,但第三个会很好!