获得第3分

时间:2014-02-11 14:12:26

标签: c# math vector unity3d

我有一条线,例如,起始Vector2(4,5)结束Vector2(10,10)。 然后我在这一行计算一个点,该线上有一个特定的位置(现在假定为0.4F):

float x = start.x + location * (end.x - start.x);
float y = start.y + location * (end.y - start.y);
return new Vector2 (x,y);

现在我有了位置,我想把这个点放在距线的偏移处。 因此,如果该线位于45Angle,我希望能够在距现有线的X偏移+90或-90度处放置一个点。保持新位置在现有线上平行。

有没有人知道如何做到这一点? 我在Unity3D中工作,如果这使你能够做更多的Vector2的东西。

非常感谢, 笑脸

1 个答案:

答案 0 :(得分:1)

您可以使用以下x和y分量获取加入startend的向量的垂直向量

float x2 = -(end.y - start.y);
float y2 =  (end.x - start.x);

并从中创建一个2D矢量。这将为您提供方向向量,您可以相应地进行缩放,并添加到线上的点以生成此垂直方向上的其他点。