直接写。如果向量的内容不太记得。先去复习。具体百度吧
1.向量的叉乘 - 点到 直线距离
local a = cc.p(1,1)
local b = cc.p(2.2)
local c = cc.p(0,0)
-- 乘的结果是 Z轴上的向量的模长,也可以是 ab向量围成的平行四边的面积(绝对值) 即为 三角形abc的面积。
local flag_ = flag or false
local vec_ab = cc.pSub(cc.p(line.x1,line.y1),cc.p(line.x2,line.y2))
local vec_ac = cc.pSub(cc.p(line.x1,line.y1),cc.p(point.x,point.y))
-- 先进行叉乘 ab ac向量围成得到平行四边形面积(值的绝对值。) 然后 除以 这2个点的距离 。就是三角形的底边。因为三角面积 底乘以高 /2 。
local distance = cc.pCross(vec_ab,vec_ac) / cc.pGetDistance(cc.p(line.x1,line.y1),cc.p(line.x2,line.y2))
if flag_ then
-- 如果求最近点 则这里实现,先进行点积运算[实数] 判断方向
local vec_dot = cc.pDot(cc.p(line.x1,line.y1),cc.p(line.x2,line.y2))
--ab 情况
if vec_dot > 0 then
--b
else
--a
end
end
return distance