opengl怎么用鼠标实现魔方各层面的旋转,键盘旋转各面已经实现,求大神指点下
1个回答
展开全部
这个要用ray tracing(光线跟踪)原理,在观测窗口点鼠标,camera位置和观察平面点击处形成一个直线,该直线在物理世界与你的魔方相交,交点就是你选中的魔方块。然后你就可以定义操作,比如拖动鼠标的时候按对应魔方轴(法线)旋转该层面,如果拖动鼠标和法线的交角小于45度也可以定义为旋转整个魔方体。
更多追问追答
追问
老大能不能详细点给个代码什么的,我这个是毕业设计,有点不懂鼠标的操作,键盘旋转都搞定了 就差这一个了
追答
鼠标操作很简单,直接用glut的鼠标回调函数就得到鼠标点击在观察平面的位置了,
void glutMouseFunc(void (*func)(int button, int state,
int x, int y));
ray tracing比较复杂,网上有很多例子是ray tracking到固定平面。对应魔方体没有现成的代码。因为魔方是个凸体,而且各个基本面还可能旋转。这个代码要自己做了。一个方法是用前面三个面和光线交点来定位,只要定位到魔方块,后面的旋转操作就简单了。
德晟智能
2024-09-04 广告
2024-09-04 广告
舵机应该如何选型?今天由我们德晟智能科技有限公司说到舵机,相信不少工程师都非常熟悉了,但是如果说到舵机的产品选型,可能不少工程师都是一知半解的,甚至大部分的人都是纯靠扭矩来进行舵机选型的。“舵机”,顾名思义就是用来控制舵面控制的伺服器,而随...
点击进入详情页
本回答由德晟智能提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询