2015-06-28 19 views
2

在LibGdx有一個非常簡單的方法來繪製形狀,我目前畫線這樣一行:畫出LibGdx是通過對某一點

shapeRenderer.begin(ShapeType.Line); 
shapeRenderer.line(x1, y1, x2, y2); 
shapeRenderer.end(); 

有一個定義的起點和終點,讓我們分別稱它們爲點1和點2。我需要藉助啓動在點1線,經過2點,並繼續在同一方向,就像這樣:

enter image description here

任何想法如何才能做到這一點?

+0

它在哪裏結束?屏幕邊緣? –

回答

1

比方說,你有一個代表你的兩個點的兩個向量:

Vector2 p1 = new Vector2(x1, y1); 
Vector2 p2 = new Vector2(x2, y2); 

然後你要做可以通過簡單地這樣做,達到什麼:

Vector2 p3 = new Vector2(p2).sub(p1).add(p2); 

shapeRenderer.line(p2.x, p2.y, p3.x, p3.y); 

您可以更改p2之間的距離和p3通過在計算時使用scl()方法p3

Vector2 p3 = new Vector2(p2).sub(p1).scl(0.5f).add(p2); 

例如,如果您使用scl(1f)或在上面的代碼片段,距離不使用它在所有喜歡p2p3之間將是一樣p1p2之間。如果你撥打scl(0.5f)長度將除以2等。

+0

只是我正在尋找的答案,謝謝! – CJ1