从其他3找到矢量

时间:2018-03-24 02:55:56

标签: math vector trigonometry

我有数学问题,我想从下面的图片中找到蓝色Vector。 (在x,y coordonate中) 黄色和绿色均标准化。红色矢量x,y值可以在0到1之间;

我设法找到蓝色矢量面向的方向:

greenVector = CrossProduct(yellow Vector, Vector.z); //get the green vector
float dir = DotProduct(red Vector, greenVector);

If (dir < 0) -> return (-greenVector);
else if (dir < 0) -> return (greenVector);
else -> return (Vector.Zero);

但它只返回一个标准化的向量...我也想要向量的长度......

谢谢! enter image description here

1 个答案:

答案 0 :(得分:1)

红色Vector的DotProduct和绿色Vector(绿色矢量标准化)为您提供沿绿色矢量方向的红色矢量的长度。所以你拥有了所需的所有信息。

返回目录* greenVector

不需要任何if语句。你绝对不想试图扭转绿色矢量的方向。如果红色矢量指向“离开”#39;从绿色矢量,dir对你已经是负面的。对于零向量,如果红色向量与绿色向量正交,则dir将为零,并且无论如何都将返回零向量。