3d绕点旋转求问!

1638496928(1)
假设我摄像机对着这个物体, 我点击任意一个红色点,然后这个物体能移动并旋转到摄像机的正面,在摄像机不移动的情况下该怎么实现呢?


大概层级关系就是这样,四个红色的正方体就是四个Cube节点, 点击任何一个时它们的根节点(也就是root)节点以当前点击的Cube节点为中心去做旋转和移动到屏幕正中心,并且可以以这个节点为轴去旋转,请问这个怎么实现呢?用欧拉角实现吗?

物体的forward=-摄像机forward

红点可能是这个物体下的一个节点,然后以这个节点为中心,以整个物体为中心的话岂不是是以整个物体为中心吗

你的意思是不移动摄像机,而是移动root节点吗

是的,但是又要以它的子节点为中心轴的那种,就感觉像2d锚点在那个节点位置一样

root.forward = -camera.forward
再累加上你要看的正方形具体某个面的旋转量
再累加上小红点在那个面的位置偏移量

我的思路是
1.先把root节点移动到相机正对面,且保证灰色正方形forward向量那面正对
2.具体小红点在正方形哪个面上,再继续让root节点转多少度就行

谢谢老哥,我回头试试, 那如果想要root以小红点为轴旋转该咋实现呢

是不是想做鼠标按下,做实时旋转?跟编辑器一样
是的话,就是把鼠标偏移量记录下来,转成-1 - 1的值,作为实际root的旋转量就行了
roll yaw pitch三个的角度,就是你说的欧拉角?

害我也不太懂欧拉角, 大概就是做这个效果
https://www.3dbody.com/html5app/zhongyiMianPc/index.html?secret=fb8fa219-a248-4844-a7af-d4b4cf6d7f4a#/

那就是了,一百鼠标只操作两个向量,垂直的俯仰角和水平的航向角,对应y坐标和x坐标

那个点击红点,然后整个模型会围绕这个点去旋转,感觉单纯的rotation属性就不行了 :sob: