没有“动画”的对象旋转

发布于 2024-11-29 09:52:59 字数 125 浏览 0 评论 0原文

我正在尝试在 OpenGL 中旋转一个对象,而不让它在其轴上重复旋转。有没有办法解决这个问题,或者我是否必须获得其他库或其他东西?

我只是想画一些平面正方形并旋转它们以制作一个简单的 3 墙 1 层房间来测试照明和阴影。

I'm trying to rotate an object in OpenGL without it spinning on its axis repeatedly. Is there anyway to fix this or do I have to get some other library or something?

I'm just trying to draw some flat squares and rotate them to make a simple 3 walled 1 floor room to test lighting and shadows in.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

So尛奶瓶 2024-12-06 09:52:59

虽然你的问题有点不清楚,但听起来你不知道 glPushMatrixglPopMatrix 。使用glPushMatrix,您基本上可以保存当前选择的矩阵,然后使用glPopMatrix再次恢复它。但请确保在每个 glPushMatrix 后面及时跟随一个相应的 glPopMatrix。但你绝对不需要使用另一个库。

所以我想你想做

for(i=0; i<3; ++i)
{
    glPushMatrix();
    glRotatef(...);
    wall(i);
    glPopMatrix();
}

Although your question is a bit unclear, it sounds like you are not aware of glPushMatrix and glPopMatrix. With glPushMatrix you can essentially save the currently selected matrix and then restore it again with glPopMatrix. But keep sure to follow every glPushMatrix with a corresponding glPopMatrix somewhere in time. But you definitely don't need to use another library.

So I think you want to do

for(i=0; i<3; ++i)
{
    glPushMatrix();
    glRotatef(...);
    wall(i);
    glPopMatrix();
}
灯角 2024-12-06 09:52:59

您只需在对象上设置变换即可。

例如 - OpenGL 资源页面的第 9.020 节有以下示例

glPushMatrix();
glRotatef(90., 1., 0., 0.);
gluCylinder(quad,1,1,2,36,12);
glPopMatrix();

:将围绕 X 轴旋转圆柱体 90 度

You just need to set the transformation on the object.

For example - section 9.020 of the OpenGL resources pages has this example:

glPushMatrix();
glRotatef(90., 1., 0., 0.);
gluCylinder(quad,1,1,2,36,12);
glPopMatrix();

This will rotate a cylinder 90 degrees around the X axis

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文