【发布时间】:2011-06-12 12:57:41
【问题描述】:
首先 - Z 在这个问题上处于领先地位。
背景:使用 3D 对象的自上而下的 2D 游戏。
玩家和所有敌人都是可以在 2D 平面 (XY) 上向任何方向移动的球体。当它们移动时,它们会像您期望的那样旋转。它们的速度是世界空间中的 3D 矢量,这就是我影响它们的方式。不允许当场旋转。
我需要找到一个公式来确定其中一个球体应该移动的方向,以使它们的 Z 轴(或任何真正的轴)指向世界空间中的指定方向。
一些例子可能是按顺序排列的:
X
|
Z--Y
这很简单:Spheres 局部轴与世界相匹配,所以如果我希望 Spheres Z 轴指向 1,0,0,那么我可以沿 1,0,0 移动球体。
给我带来麻烦的是:
X
|
Y--Z
现在我知道要让 Z 轴指向世界空间中的 1,0,0,我必须告诉球体沿 1,1,0 移动,但我不知道/理解为什么这是案例。
我已经编程了十年,但我绝对不擅长向量数学,所以在试图解释时假设我是个白痴:)
【问题讨论】:
-
如果没有一些矢量知识,你会发现这非常困难。
-
如果是球体,那么任何方向都可以是z轴。
-
我什至不明白这个问题。当你沿着一个方向移动球体时,它的轴不会改变它们的方向,因为它只是一个平移。您是在寻找旋转以将球体的轴与某个方向对齐还是什么?
-
你的意思是这些球体在二维平面上滚动?
-
@beta 就问题而言是的。
标签: math vector 3d rotation geometry