/ android  pathmeasure  getpostan 

Path任意点垂直线计算


如上图所示,需要计算Path上任意点的垂线;

首先得到PathMeasure

PathMeasure pathMeasure = new PathMeasure(mPath, false);

我们先看下pathMeasure中的

boolean getPosTan (float distance, float[] pos, float[] tan)

tan 用来描述 Path 上某一点的切线方向,两个数值 tan[0] 和 tan[1] 来描述这个切线的方向(切线方向与x轴夹角) ,看上面公式可知 tan 既可以用 对边/邻边 来表述,也可以用 sin/cos 来表述,此处用两种理解方式均可以(注意下面等价关系)

tan[0] = cos = 邻边(单位圆x坐标)
tan[1] = sin = 对边(单位圆y坐标)

所以我们可以算出该点的斜率k = tan[1] / tan[0]

两个斜率乘积为-1关系证明了两条直线相互垂直。斜率计算ax+by+c=0中,k=-a/b

所以可以得到垂线的斜率k1 = -1 / k

然后根据直线方程 y = kx+b 且过交点,所以可以算出b = y - kx,,,得到b,,,

这样就得到了垂线方程中的k和b,

发布评论

热门评论区: