canvas圆形和正方形碰撞检测

2023-11-18

1. 圆形碰撞检测

  //  弧度转角度
    function d2a(n){
      return n*Math.PI/180;
    }
    // 角度转弧度
    function a2d(){
      return n*180/Math.PI;
    }
    window.onload=function (){
      let oC=document.getElementById('c1');
      let gd=oC.getContext('2d');

      let cx=400,cy=300,r=150;

      gd.beginPath();
      gd.arc(cx, cy, r, d2a(0), d2a(360), true);
      gd.stroke();

      oC.onmousemove=function (ev){
        let x=ev.offsetX,y=ev.offsetY;
        let dis=Math.sqrt(Math.pow(x-cx, 2)+Math.pow(y-cy, 2));

        gd.clearRect(0, 0, oC.width, oC.height);

        if(dis<=r){
          gd.strokeStyle='red';
        }else{
          gd.strokeStyle='black';
        }

        gd.beginPath();
        gd.arc(cx, cy, r, d2a(0), d2a(360), true);
        gd.stroke();
      };
    };


正方形碰撞检测

  let oc = document.querySelector("#c1")
            //拿到画笔
            let gd = oc.getContext('2d')
            gd.strokeRect(100, 100, 200, 150)
            oc.onmousemove = function (ev) {
                let l = 100, t = 100, r = l + 200, b = t + 150
              let x = ev.clientX-oc.offsetLeft, y = ev.clientY-oc.offsetTop
           gd.clearRect(0, 0, oc.width, oc.height)
                 console.log(x,y)
                if (l <= x && x <= r && t <= y && y <= b) {
                   gd.strokeStyle = 'red'
               }else {
                    gd.strokeStyle = 'black'
                }
              gd.strokeRect(100, 100, 200, 150)
             }


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

canvas圆形和正方形碰撞检测 的相关文章

随机推荐

  • c语言/c++(数据结构篇) 之 括号匹配检验实例(栈和队列)(4/7)

    实验目的及要求 熟悉掌握利用栈完成括号是否匹配的检验 实验内容 利用栈完成括号匹配检验 目的 掌握栈的后进先出原则在解决实际问题中的应用 内容 输入一组括号 构造栈 利用栈判断所输入的括号是否匹配 并能够输出匹配 多左括号 多右括号三种不同
  • Centos7Hadoop集群搭建准备工作

    设置静态IP地址 1 vi etc sysconfig network scripts ifcfg ens33 BOOTPROTO static ONBOOT yes 固定IP IPADDR IP地址 子网掩码 NETMASK 255 25
  • [思维模式-8]:《如何系统思考》-4- 认识篇 - 什么是系统思考?系统思考的特征?系统思考的思维转变。

    目录 第1章 系统思考概述 1 1 什么是系统思考 1 2 系统思考适合解决什么样的问题 解决复杂问题的有效利器 1 3 思维模式的转换 还原论向整体论 西医向中医 第2章 系统思考的四项特征 2 1 看到全貌而非局部 2 2 看透结构而非
  • 基于 Kintex-7 FPGA + Nvidia TX2 = 16通道高速ADC数据采集系统

    在之前接触的设计中如果涉及要实现ADC采样的话 往往会从精度和速率来考虑对性能的影响 一般来说精度是固定的或有一个最大精度设置 但是采样速率的话 过快会造成采样不准确 往往会对整个设计的性能造成限制 所以一直期望有这样一个系统 可以实现高速
  • 如何配置Java环境变量

    文章目录 零 首先需要进入环境变量页面 一 配置 JAVA HOME 变量 二 配置 Path 变量 三 配置 CLASSPATH 变量 四 验证是否配置成功 零 首先需要进入环境变量页面 1 win i 打开设置页面 点击系统 2 点击关
  • Camera的学习笔记(二)——ISP

    ISP概念 ISP是Image Signal Processor的缩写 全称是影像处理器 在相机成像的整个环节中 它负责接收感光元件 Sensor 的原始信号数据 可以理解为整个相机拍照 录像的第一步处理流程 对图像质量起着非常重要的作用
  • 改善服务器响应时间,一种改进WWW服务器响应时间的调度方法

    一种改进WWW服务器响应时间的调度方法 这篇论文提出了一种基于控制因子 处于先来先服务和最短作业优先调度方法之间的分类调度方法 它是非抢占的 且不会发生HTTP请求长期等待而未得到WW 本文共3页 阅读全文 gt gt 公共交通是城市居民出
  • element UI 对导航el-menu 样式的修改

    element UI 对导航el menu 样式的修改 对样式进行修改时 el menu horizontal gt el submenu el submenu title el menu horizontal gt el submenu
  • 关于unity3的中关于创建方法的总结

    关于创建基本物体 有些情况会使用上 物体碰撞 游戏里怪物和英雄的触发事件上 创建一个简单物体 隐藏mesh可以作为简单的触法器使用 多次创建预制体Prefab 方法Instantiate original Object position V
  • 基于蜣螂算法优化的SVM数据分类预测-附代码

    基于蜣螂算法优化的SVM数据分类预测 附代码 文章目录 基于蜣螂算法优化的SVM数据分类预测 附代码 1 数据集 2 SVM模型建立 3 基于蜣螂算法优化的SVM 4 测试结果 5 参考文献 6 Matlab代码 7 python代码 摘要
  • IP数据包格式各字段详解说明

    1 版本 指IP协议的版本 为0100或0110 即IPv4和IPv6两种版本 通信双方使用的IP协议版本必须一致 2 首部长度 占 4 位 可表示的最大十进制数值是15 请注意 这个字段所表示数的单位是32位字 即0001表示1个32位字
  • android 中的的 sp/wp/RefBase

    转自 http blog csdn net innost article details 6752443 5 1 概述 初次接触Android源码时 见到最多的一定是sp和wp 即使你只是沉迷于Java世界的编码 那么Looper和Hand
  • STM32CubeIDE IAP原理讲解,及UART双APP交替升级IAP实现

    随言 IAP应该是我唯一想写的文章 从创建这个账号开始 但是不知不觉几年过去了 一直没去写这文章 现在就随便写写吧 曾做过4G模块UART协议与STM32通讯实现远程无线迭代升级 一共2个APP bootloader优先选择稳定高版本的AP
  • 最详解决:jupyter notebook不会自动打开浏览器问题

    一 宝刀未老的老Amy回归之 问题描述 好久木有在 csdn 上写文章了 那是什么原因让 开摆一年 的老Amy 开写 了呢 噔噔蹬蹬 答案是 老Amy的一颗责任心 言归正传 最近替别的老师上几节课 刚好告诉大家如何安装 jupyter 以及
  • 线程复习(针对面试)

    问题一 请说明一下进程和线程的区别 一个进程运行要给他分配系统资源 维护他的代码段和数据段 堆栈等 而线程跟他共享这些 节俭的多任务操作方式 典型的UNIX Linux进程可以看成只有一个控制线程 一个进程在同一时刻只做一件事情 有了多个控
  • (附源码)spring boot西安市中小学生护眼平台开发 毕业设计 080855

    springboot西安市中小学生护眼平台开发 摘要 俗话说 眼睛是心灵的窗户 可在这个科学技术日新月异发展的大千世界里 戴眼镜的人却随处可见 特别是我国在校学生3 2亿 平均近视率超过60 其中小学生为35 初中生为65 高中生达79 更
  • CAD螺纹lisp程序_公英制螺纹标注方法及加工大全

    普通螺纹的标记 螺纹公差带代号的标注在螺纹代号之后 中间用 分开 如果螺纹的中径公差带代号不同 则分别注出 前者表示中径公差带 后者表示顶径公差带 如果中径公差带与顶径公差带代号相同 则只标注一个代号 例如 M10 5g6g M10 1 6
  • shell是什么?ssh 与 git bash linux或cmd与 shell区别

    什么是shell Bash介绍及内容 1 认识Bash这个Shell 管理整个计算机硬件就是操作系统的内核 而内核是需要被保护的 不能让用户随便去修改不然系统崩溃了怎么办 所以一般用户只能通过Shell来跟内核沟通 shell的定义 什么是
  • ajax上传netcore插件,.NET Core Web 文件分片上传,带进度条实用插件

    git CMD命令 git initgit add 添加文件至暂存区 git commit m 描述性语句 随意写即可 git branch gh pages 创建仓库分支 git checkou 使用ARM模板部署自动扩展的Linux V
  • canvas圆形和正方形碰撞检测

    1 圆形碰撞检测 弧度转角度 function d2a n return n Math PI 180 角度转弧度 function a2d return n 180 Math PI window onload function let oC