我想使用 OpenGL 使用原始形状(例如圆柱体、立方体等)绘制一个基本的机械臂。
此时,我设法通过应用必要的变换静态地绘制了 ARM ,即。平移、旋转、缩放等
我现在需要让它具有交互性。也就是说,当用户选择某个对象并将其四处移动时,附加到它的较小对象必须移动。
示例:- 如果用户移动 ARM ,则手腕、手掌和手指必须移动,但肩膀不能移动。同样,如果选择手掌并围绕手腕旋转,则只有连接到该手掌的手指可以与手掌一起移动,而不是 ARM 或手腕。
我的代码必须遵循什么样的设计模式才能干净地实现这一目标?
最佳答案
您在这里所做的称为变换层次结构,实际上在 OpenGL-1.1 编程指南中有关变换的章节中有所介绍(OpenGL 的最新版本,即 v3 和后来的 largeley 剥离了矩阵操作的内容,所以你需要自己实现这个,但原理是一样的)。
往本章结尾看(我建议你通读整篇文章):
关于c++ - 在 OpenGL 中绘制多个相关对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7772839/