在Canvas上通过某个单元扩展Path的方法

时间:2015-09-25 07:32:19

标签: android android-canvas

我有一个简单的LIMIT,我将其绘制为

Path

现在我想扩展这条​​路径,让我们说出最后一个坐标的5个单位(因为我只想让它的长度增加5个单位而且我没有进一步的x和y坐标)。有没有Android API或简单的方法呢?我觉得必须有像animPath.moveTo(360, 360); animPath.lineTo(500, 200); 这样的方法,它应该根据最后的坐标在同一方向上将这个路径扩展5个单位。但无法找到任何。

2 个答案:

答案 0 :(得分:0)

不幸的是,没有API方法。您可以通过保存两个最新点来实现它,并且(在一些数学计算之后)通过再添加一个animPath.lineTo(x, y)调用来绘制此偏移量。

答案 1 :(得分:0)

在给定距离找到一条线上的第三个点(中心和另一个点已知)的一种简单方法是here,它对我有效。

Len = Sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1))
Normalized (unit-length) direction vector is

dx = (x2-x1) / Len
dy = (y2-y1) / Len
P3 coordinates for case when P1P3 and P1P2 vectors have the same direction:

x3 = x1 + Distance * dx
y3 = y1 + Distance * dy
for opposite direction:

x3 = x1 - Distance * dx
y3 = y1 - Distance * dy