canvas坐标系统 webgl坐标系统 uv纹理坐标系统 原点

本文介绍了Web开发中Canvas、WebGL和UV坐标系的区别,包括Canvas的左上角原点,x轴向右y轴向下;WebGL的中心原点,x轴向右y轴向上,数据范围[-1,1];以及UV坐标系统的左下角原点,同样x轴向右y轴向上,数据范围同样为[-1,1]。
摘要由CSDN通过智能技术生成

一、canvas原点在左上角,x轴正方向向右,y轴正方向向下,一个点对应一个像素

二、webgl原点在正中间,x轴正方向向右,y轴正方向向上,数据显示范围在[-1,1]之间,超过此范围不显示数据

三、uv原点在左下角,x轴正方向向右,y轴正方向向上,数据范围在[-1,1]之间

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Canvas坐标转换为屏幕坐标主要涉及到两个概念:Canvas坐标系和屏幕的坐标系Canvas坐标系是指Canvas画布上的坐标系,它的原点Canvas的左上角,x轴向右增加,y轴向下增加;屏幕坐标系是指计算机屏幕上的坐标系,它的原点在屏幕左上角,x轴向右增加,y轴向下增加。 在确定Canvas坐标和屏幕坐标之间的转换关系之前,我们首先需要获取Canvas的位置信息,也就是左上角点在屏幕坐标系上的x和y坐标。可以使用以下代码获取: ```javascript const canvas = document.getElementById('myCanvas'); const canvasX = canvas.getBoundingClientRect().left; const canvasY = canvas.getBoundingClientRect().top; ``` 接下来我们需要考虑Canvas上的元素位置信息,如矩形、圆形、文本等。Canvas坐标转换为屏幕坐标的方法有两种: 1. 使用CanvasRenderingContext2D的`transform()`方法:可以通过该方法将Canvas坐标系转换为屏幕坐标系,从而直接获取元素在屏幕上的位置信息。 ```javascript const ctx = canvas.getContext('2d'); ctx.fillRect(50, 50, 100, 100); //画一个矩形 //获取元素在屏幕上的位置信息 const screenX = 50 + canvasX; const screenY = 50 + canvasY; const screenWidth = 100; const screenHeight = 100; ``` 2. 手动计算转换:将Canvas坐标系中的坐标转换为屏幕坐标系中的坐标,需要注意的是,由于两个坐标系原点和方向不同,因此转换时需要进行坐标轴翻转和坐标系平移等操作。 ```javascript const ctx = canvas.getContext('2d'); ctx.fillRect(50, 50, 100, 100); //画一个矩形 //手动计算元素在屏幕上的位置信息 const x = 50; const y = 50; const width = 100; const height = 100; const screenX = x + canvasX; const screenY = canvas.height - y - height + canvasY; const screenWidth = width; const screenHeight = height; ``` 在实际应用中,我们通常会采用第一种方式进行转换,因为它更为简洁方便,同时也是推荐使用的方式。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值