2014-02-11 29 views
0

我有一條線,例如,開始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的東西或不。

提前許多感謝, 笑臉

+0

相關:[找到一條直線與已知直線相交,給定一個點](http://stackoverflow.com/questions/6630596/find-a-line-intersecting-a-known-line-at-直角賦予-A-點)。 –

+0

[Unity文檔](http://docs.unity3d.com/Documentation/Manual/ComputingNormalPerpendicularVector.html)有關於計算法線的文章。 –

回答

1

你可以得到一個垂直矢量使用以下x和y分量

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

加入startend載體和創造不同於二維矢量。這給你的方向矢量,你可以相應地縮放,並添加到你的線上的點來產生在這個垂直方向上的其他點。

+0

這正是我所需要的。我一直使用Vector2作爲X和Y座標,我完全忘記了你也可以將它們用作方向。我創建了新的矢量並對其進行了歸一化處理,然後將其添加到我已計算的中間點。這解決了問題! – Smileynator