在LibGdx中绘制一条经过某一点的线

时间:2015-06-28 20:57:30

标签: java libgdx

在LibGdx中有一种非常简单的方法来绘制形状,目前我正在绘制这样的线条:

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

有一个定义的起点和终点,让我们分别称它们为第1点和第2点。我需要绘制一条从第1点开始,经过第2点并沿同一方向继续的线,如下所示:

enter image description here

任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:3)

假设您有两个代表两点的向量:

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之间的距离将与{{1}之间的距离相同}和p1。如果你致电p2,长度将除以2,等等。