zoukankan      html  css  js  c++  java
  • 碰撞检测

    碰撞检测:
    1、圆形与矩形的碰撞检测

    函数ComputeCollision,当相对距离小于圆形半径的时候为碰撞。

      参数介绍(w:矩形的宽,h:矩形的高,r:圆形半径,rx:圆形中心与矩形中心相对坐标X,ry:圆形中心与矩形中心相对坐标Y)

            function ComputeCollision(w, h, r, rx, ry) {
                var dx = Math.min(rx, w * 0.5);
                var dx1 = Math.max(dx, -w * 0.5);
                var dy = Math.min(ry, h * 0.5);
                var dy1 = Math.max(dy, -h * 0.5);
                return (dx1 - rx) * (dx1 - rx) + (dy1 - ry) * (dy1 - ry) <= r * r;
            }


    2、圆形坐标中心位置和矩形坐标中心位置
       圆形坐标指鼠标的位置
       修正圆形的位置,让鼠标在圆心的中心位置

                    //圆心坐标
                    var radiusPosX = parseInt((event.clientX || event.x));
                    var radiusPosY = parseInt((event.clientY || event.y));
    
                    event = event || window.event;
                    //让鼠标在圆心的位置
                    circle.style.left = parseInt(radiusPosX - radius) + "px";
                    circle.style.top = parseInt(radiusPosY - radius) + "px";

     矩形的长宽
     矩形的中心位置是(相对距左+宽度,相对距顶+高度)。

                    //矩形的长宽
                    var rectW = rect.clientWidth;
                    var rectH = rect.clientHeight;
                    //矩形中心坐标
                    var rectPosX = parseInt(rect.offsetLeft) + rectW / 2;
                    var rectPosY = parseInt(rect.offsetTop) + rectH / 2;

  • 相关阅读:
    统计代码测试覆盖率-Python
    第一篇
    svn统计代码行数(增量)
    android多渠道打包
    解决Error:All flavors must now belong to a named flavor dimension. Learn more at...
    Cannot set the value of read-only property 'outputFile' for ApkVariantOutputImpl_Decorated{...
    解决Android编译时出现aapt.exe finished with non-zero exit value 1
    自定义Json解析工具
    Process 'command 'D:jdk8jdkinjava.exe'' finished with non-zero exit value 2
    C:Program FilesJavajdk1.7.0_79injava.exe'' finished with non-zero exit value 1
  • 原文地址:https://www.cnblogs.com/kuikui/p/2572288.html
Copyright © 2011-2022 走看看