向量的叉乘 - 点到 直线距离 运用(lua代码)

直接写。如果向量的内容不太记得。先去复习。具体百度吧


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值