当前位置: 首页 > news >正文

canvas坐标系转webgl坐标系

 红色的canvas坐标系,蓝色是webgl坐标系 

需要注意的地方有三点

  1. 坐标原点不同,需要将canvas的中间位置作为webgl的原点,求出绿色的点相对于canvas中间位置的偏移量
  2. 求出绿色的点 相对于canvas中间位置的偏移量 对应的webgl的位置
  3. 处理y轴,canvas的y向下,webgl的y轴向上,需要将 y 的值取反

代码为鼠标点击canvas,获取当前的点的webgl坐标

canvas.addEventListener('click', (e) => {// 第一步:e.clientX 是鼠标在网页中的位置,需要根据 e.clientX 求出鼠标在canvas中的位置const { clientX, clientY } = econst { top, left } = canvas.getBoundingClientRect();const [canvasX, canvasY] = [clientX - left, clientY - top]// 第二步:求canvas中的坐标值对应的webgl的坐标值// 1、处理原点,以canvas的中间位置(canvas.width/2,canvas.height/2)作为webgl的原点(0,0),求出鼠标当前位置在canvas系统中相对于webgl中的位置const canvasOffsetX = canvasX - canvas.width / 2const canvasOffsetY = canvasY - canvas.height / 2// 2、将canvas系统中的坐标值转换成webgl中的值const canvas2WebglX = canvasOffsetX / (canvas.width / 2)const canvas2WebglY = canvasOffsetY / (canvas.height / 2)// 3、处理y轴,canvas的y向下,webgl的y轴向上const canvas2WebglY2 = -canvas2WebglY;// canvas2WebglX 即为鼠标点在webgl中的x,canvas2WebglY2 即为鼠标点在webgl中的y
})

http://www.xdnf.cn/news/357823.html

相关文章:

  • 数字化转型-4A架构之数据架构
  • selenium替代----playwright
  • XML Forms Data Format (XFDF) 工作原理、数据结构、使用场景以及与缓冲区的交互方式
  • 【身份证识别表格】批量识别身份证扫描件或照片保存为Excel表格,怎么大批量将身份证图片转为excel表格?基于WPF和腾讯OCR的识别方案
  • 从 JMS 到 ActiveMQ:API 设计与扩展机制分析(一)
  • 37-智慧医疗服务平台(在线接诊/问诊)
  • Windows系统下【Celery任务队列】python使用celery 详解(二)
  • Jsoup与HtmlUnit:两大Java爬虫工具对比解析
  • PostgreSQL逻辑复制(logic replication)
  • 《内存单位:解锁数字世界的“度量衡”》
  • TIME - MoE 模型代码 3.2——Time-MoE-main/time_moe/datasets/time_moe_dataset.py
  • android 媒体框架
  • Android Handler 机制面试总结
  • 力扣刷题 每日四道
  • pandas中的数据聚合函数:`pivot_table` 和 `groupby`有啥不同?
  • 【项目中的流程管理(十一)】
  • MongoDB 创建索引原则
  • 设计模式-策略模式(Strategy Pattern)
  • 前端指南——项目代码结构解析(React为例)
  • 系统文件夹迁移与恢复
  • 系分论文《论多云架构治理的分析和应用》
  • 为人类文明建一座“永不遗忘”的数字博物馆:Funes 技术解析
  • 【计算机视觉】OpenCV项目实战:get_inverse_perspective:基于OpenCV的透视图转化为不同平面
  • 【LangChain全栈开发指南】从LLM集成到智能体系统构建
  • 【MYSQL错误连接太多】
  • 【智体OS】AI社交产品头榜赋能电商新零售:某品牌吹风机的智能营销实战案例
  • 解决 MySQL 数据库无法远程连接的问题
  • 一场陟遐自迩的 SwiftUI + CoreData 性能优化之旅(下)
  • 介质访问控制(MAC)
  • sqli-labs靶场18-22关(http头)