canvas笔记--圆形碰撞检测

<!DOCTYPE html>

<html lang="zh">

<head>

    <meta charset="UTF-8">

    <title></title>

    <style>

        #mc {

            display: block;

            box-shadow: 0 0 10px black;

            margin: 0 auto;

        }

    </style>

</head>

<body>

<canvas id="mc" width="1000px" height="600px"></canvas>

<script>

var mc = document.getElementById('mc');

var ctx = mc.getContext('2d');

var smallStyle = 'pink';

function drawBig(){

ctx.beginPath();

ctx.fillStyle = 'orange';

ctx.arc(500,300,100,0,2*Math.PI);

ctx.fill();

}

mc.onmousemove = function (ev){

//清除画布

ctx.clearRect(0,0,1000,600);

var e = ev || window.event;

//获取到鼠标的坐标

var mx = e.offsetX;

var my = e.offsetY;

drawBig();

//绘制小球

ctx.beginPath();

ctx.arc(mx,my,50,0,2*Math.PI);

ctx.fillStyle = smallStyle;

ctx.fill();

//当圆心距小于半径之和时

var dis = Math.sqrt(Math.pow(mx-500,2)+Math.pow(my-300,2));

if(dis<=150){

console.log(1);

smallStyle = 'blue';

} else {

smallStyle = 'pink';

}

}

</script>

</body>

</html>

未碰撞时这样子的


小球碰撞后小球变色

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一:canvas简介 1.1什么是canvas? ①:canvas是HTML5提供的一种新标签 ②:HTML5 ...
    GreenHand1阅读 10,195评论 2 32
  • 1.绘制若干个小球 2.让每个小球都是些碰壁反弹 3.当两个小球之间的距离到达指定长度时,在这两个小球中间绘制一条...
    _州舟_阅读 1,661评论 0 3
  • html部分: 快去升级你的浏览器吧! js 部分: var ctx = document.getElementB...
    吸猫群众阅读 3,414评论 0 0
  • 找到fullcalendar.js, 找到代码为 isRTL:false,这句话 输入以下几句 monthName...
    迷你小小白阅读 5,651评论 0 1
  • 一、canvas简介 1.1 什么是canvas?(了解) 是HTML5提供的一种新标签 Canvas是一个矩形区...
    Looog阅读 9,369评论 3 40

友情链接更多精彩内容