棍子是平移还是怎么旋转棍子的

从书上和别人的言论里听到很哆说法:“先平移后怎么旋转棍子,先怎么旋转棍子后平移是不一样的” “平移和怎么旋转棍子的操作对象是物体还是坐标系?” “怎麼旋转棍子的第一个角度参数是为逆时针指定的” “程序指定顺序和机器执行顺序是相反的”..所谓“眼见为实”亲自试验,才可信:

(開始采用的是球体但不如有棱角的立方体更能说明问题)

第一个图是先怎么旋转棍子,后平移的效果它能说明:1.glTranslatef glRotatef的对象都是坐标系,否则蓝色的立方体不会出现在左上方(可能会出现在右方);2.机器执行顺序与代码指定顺序是一致的否则蓝色的立方体不会是“绕自身Φ心怎么旋转棍子”的效果,而可能是仍然“端端正正”--绕非自身轴怎么旋转棍子的效果;3.glRotatef函数的第一个角度参数确实是针对逆时针(CCW)嘚

第二个图是先平移,后怎么旋转棍子的效果起初怎么也不解,甚至怀疑库文件是否完整(专门换了一个更早的库版本跑同一个测试程序结果是一样的,这至少证明库文件没问题)后来,洗了个澡一身清爽,刹那间就来了灵感:这样才对啊因为平移的是坐标系,也就是经过glTranslate后原点平移到了图中蓝色立方体的中心然后坐标系(带动它上面的stuff)绕z轴(由屏幕指向外)怎么旋转棍子105°--关键是原点的位置。

ps:遇事多动脑筋问题总能解决的。加油!

//这里可以更改平移、怎么旋转棍子的先后顺序 glFlush();//没有这句只显示白茫茫的一片 。对比其他程序好像都没写glFlush().?
}

我要回帖

更多关于 怎么旋转棍子 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信