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

比较不同类型网站栏目设置区别软件开发工程师证书图片

比较不同类型网站栏目设置区别,软件开发工程师证书图片,郑州 外包网站,安卓aso优化文章目录 坐标系的平移、缩放与旋转平移旋转缩放镜像 自定义的坐标变换 坐标系的平移、缩放与旋转 平移 translate() 方法通过在网格上将画布和原点水平移动 x 单位和垂直移动 y 单位,向当前矩阵添加一个平移变换。 示例-移动矩形 const canvas document.getElem…

文章目录

  • 坐标系的平移、缩放与旋转
    • 平移
    • 旋转
    • 缩放
    • 镜像
  • 自定义的坐标变换


坐标系的平移、缩放与旋转

平移

translate() 方法通过在网格上将画布和原点水平移动 x 单位和垂直移动 y 单位,向当前矩阵添加一个平移变换。

在这里插入图片描述

示例-移动矩形

在这里插入图片描述

const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");// 移动的正方形
ctx.translate(110, 30);
ctx.fillStyle = "red";
ctx.fillRect(0, 0, 80, 80);// 重置当前的变换矩阵为单位矩阵
ctx.setTransform(1, 0, 0, 1, 0, 0);// 未移动的正方形
ctx.fillStyle = "gray";
ctx.fillRect(0, 0, 80, 80);

旋转

rotate(angle) 方法用于在变换矩阵中增加旋转。

angle 顺时针旋转的弧度。如果你想通过角度值计算,可以使用公式: degree * Math.PI / 180 。旋转中心点一直是 canvas 的原点。如果想改变中心点,你可以通过 translate() 方法移动画布。

示例-围绕中心旋转矩形

在这里插入图片描述

const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");// 未旋转的矩形
ctx.fillStyle = "gray";
ctx.fillRect(80, 60, 140, 30);// 矩阵变换
ctx.translate(150, 75);
ctx.rotate(Math.PI / 2);
ctx.translate(-150, -75);// 旋转后的矩形
ctx.fillStyle = "red";
ctx.fillRect(80, 60, 140, 30);

缩放

scale() 方法用于根据水平和垂直方向,为 canvas 单位添加缩放变换。

默认情况下,在 canvas 中一个单位实际上就是一个像素。例如,如果我们将 0.5 作为缩放因子,最终的单位会变成 0.5 像素,并且形状的尺寸会变成原来的一半。相似的方式,我们将 2.0 作为缩放因子,将会增大单位尺寸变成两个像素。形状的尺寸将会变成原来的两倍。

示例-缩放矩形

在这里插入图片描述

const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");// 缩放后的矩形
ctx.scale(9, 3);
ctx.fillStyle = "red";
ctx.fillRect(10, 10, 8, 20);// 将当前变换矩阵重置为单位矩阵
ctx.setTransform(1, 0, 0, 1, 0, 0);// 未缩放的矩形
ctx.fillStyle = "gray";
ctx.fillRect(10, 10, 8, 20);

镜像

镜像也叫水平或垂直翻转,你可以使用 scale(-1, 1) 来将上下文水平翻转,使用 scale(1, -1) 来将其垂直翻转。

在这里插入图片描述

const canvas = document.getElementById('canvas')
const ctx = canvas.getContext('2d')ctx.font = '32px serif'
ctx.fillText('Hello', 10, 80)
ctx.translate(canvas4.width, 0)
ctx.scale(-1, 1)
ctx.fillText('Hello', 10, 80)

自定义的坐标变换

Canvas 的绘图环境对象提供了两个可以直接操作变换矩阵的方法:

transform() 方法用于修改当前的变换矩阵。它接受六个参数:a、b、c、d、e、f,分别对应水平缩放、水平倾斜、垂直倾斜、垂直缩放、水平平移和垂直平移。这个方法不会重置当前的变换矩阵,而是在当前矩阵的基础上进行修改。

setTransform() 方法则不同,它会将当前的变换矩阵重置为单位矩阵,然后根据提供的参数(a、b、c、d、e、f)构建一个新的矩阵。这意味着每次调用 setTransform() 时,之前的变换都会被重置,新的变换从零开始。

ctx.setTransform(1, 0, 0, 1, 0, 0); 这行代码会重置当前的变换矩阵为单位矩阵,并设置一个新的单位矩阵。

在这里插入图片描述

如果一个点原始坐标为 (x,y),那么经过变换后,它的坐标将变为 (ax+cy+e,bx+dy+f)。这意味着:

  • e 和 f 控制上下文的水平和垂直平移。
  • 当 b 和 c 为 0 时,a 和 d 控制上下文的水平和垂直缩放。
  • 当 a 和 d 为 1 时,b 和 c 控制上下文的水平和垂直倾斜。
http://www.dtcms.com/wzjs/595219.html

相关文章:

  • 濮阳免费网站建设wordpress怎么和手机连接
  • 做网站保存什么格式最好网站头部seo范例
  • 网站建设收费分几次如何做二级域名网站
  • iis网站怎么做域名绑定上海软件开发工程师工资一般多少
  • 襄阳网站制作网站制作哪家便宜
  • 字形分析网站优化seo搜索
  • 做律师咨询网站网站的程序和数据库怎么做的
  • 西安直播网站开发益阳市赫山区建设局网站
  • 潜江做网站佛山做网站
  • 学校网站开发毕业设计公众号网站
  • 一级a做爰片免费网站破解版企业如何建设免费网站
  • 建设网站的公司哪个济南兴田德润怎么联系成都旅游路线规划
  • 网站推广方案怎么写商铺设计
  • 做美妆网站的关键词做网页的
  • 站外推广平台有哪些青岛建站合作
  • 网站建设对企业带来什么作用如何做网站推广方式
  • 为什么大网站的百度快照更新速度慢还排第一wordpress导航栏字体
  • 论文中小企业的网站建设网站服务器建设的三种方法是什么
  • vs2017做网站网站建设ftp软件
  • 韩国flash网站广州一起做网店网站
  • 重庆做网站开发的公司怎么学习网站开发
  • 惠州专业做网站成都网站建设 平易云
  • 站长统计网站大全青岛网站建设¥青岛博采网络
  • 网奇e游通旅游网站品牌策划方案模板
  • 做网站的开发环境贵州互联网公司
  • 共享备案网站下列哪个软件属于网页制作软件
  • 瓷器网站源码wordpress主题图片路径换取l
  • 做网站运营的简历大型多媒体网站建设工具
  • ftp两个网站子域名的绑定个人可以自己做网站吗
  • 网站建设相对路径自助建站网站