c++ - 在 OpenGL 中绘制多个相关对象

标签 c++ opengl

我想使用 OpenGL 使用原始形状(例如圆柱体、立方体等)绘制一个基本的机械臂。

此时,我设法通过应用必要的变换静态地绘制了 ARM ,即。平移、旋转、缩放等

我现在需要让它具有交互性。也就是说,当用户选择某个对象并将其四处移动时,附加到它的较小对象必须移动。

示例:- 如果用户移动 ARM ,则手腕、手掌和手指必须移动,但肩膀不能移动。同样,如果选择手掌并围绕手腕旋转,则只有连接到该手掌的手指可以与手掌一起移动,而不是 ARM 或手腕。

我的代码必须遵循什么样的设计模式才能干净地实现这一目标?

最佳答案

您在这里所做的称为变换层次结构,实际上在 OpenGL-1.1 编程指南中有关变换的章节中有所介绍(OpenGL 的最新版本,即 v3 和后来的 largeley 剥离了矩阵操作的内容,所以你需要自己实现这个,但原理是一样的)。

往本章结尾看(我建议你通读整篇文章):

http://fly.cc.fer.hr/~unreal/theredbook/chapter03.html

关于c++ - 在 OpenGL 中绘制多个相关对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7772839/

相关文章:

c++数组内容在引用全局数组时发生变化

c++ - 在 C++ 中创建多个静态对象

c++ - 带有 EVP_PKEY_free 作为自定义删除器的 shared_ptr<EVP_PKEY> 导致堆损坏

c++ - 关于右值引用的一些说明

c++ - SOIL - 获取图像尺寸

c++ - 为什么valgrind使用GLUT和PORTAUDIO报告我的内存肯定丢失了12或24个字节

c++ - 我收到一个错误 [错误 : expected unqualified-id before ‘&’ token ] in a c++ program

java - JOGL 阴影贴图

c++ - 从文件中读取绘图点然后缩放

c++ - 把相机放在我的天空盒里