在LibGdx中有一种非常简单的方法来绘制形状,目前我正在绘制这样的线条:
shapeRenderer.begin(ShapeType.Line);
shapeRenderer.line(x1, y1, x2, y2);
shapeRenderer.end();
有一个定义的起点和终点,让我们分别称它们为第1点和第2点。我需要绘制一条从第1点开始,经过第2点并沿同一方向继续的线,如下所示:
任何想法如何做到这一点?
答案 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)
或完全不使用它,就像在上一个代码段中一样,p2
和p3
之间的距离将与{{1}之间的距离相同}和p1
。如果你致电p2
,长度将除以2,等等。