cocos ----------点在旋转矩形内实现方法2----

原理:

旋转前(a,b) 旋转后(a',b') 旋转角度为X

a'=acos(t+X)=a*costcosX-a*sintsinX=acosX-bsinX   

b'=bsin(t+X)=b*costsinX+b*sintcosX=asinX+bcosX 

 p'(acosX - bsinX,bsinX + bsinX) :


------------------------代码

    local rectW = self.pic_BeEequal:getSize().width

    local rectH = self.pic_BeEequal:getSize().height

精灵默认锚点是0.5       所以中点就是这个X

    local rectCentPosX = self.pic_BeEequal:getPos().x 

    local rectCentPosY = self.pic_BeEequal:getPos().y 


    local nTempX ,nTempY =0,0

    local deg = (self.pic_BeEequal:getRotation()) * math.pi / 180

-- 还原鼠标点 ,先平移到中点。

    nTempX = rectCentPosX + (touches[1]:getLocation().x - rectCentPosX) * math.cos(deg) - (touches[1]:getLocation().y - rectCentPosY) * math.sin(deg) 
    nTempY = rectCentPosY + (touches[1]:getLocation().x - rectCentPosX) * math.sin(deg) + (touches[1]:getLocation().y - rectCentPosY)* math.cos(deg)


    -- rect
    print("nTempX",nTempX)
    print("nTempY",nTempY)
    dump(self.rect) -- 旋转之前的矩形
    if cc.rectContainsPoint(self.rect,cc.p(nTempX,nTempY)) then
        print("............<<<<<<<<<<<<<<")
    end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值