canvas变换

  1. 方法

    save()                  保存canvas状态
    restore() 回复canvas保存的状态
    translate(x, y) 移动canvas位置
    rotate(radians) 顺时针方向旋转canvas,弧度 = (Math.PI/180)*角度)
    scale(x, y) 缩放坐标轴,如果是负数则坐标轴反向
  2. 移动画布

    const canvas = document.getElementById('canvas');
    const ctx = canvas.getContext('2d'); ctx.save();
    ctx.fillStyle='orange';
    ctx.translate(10, 10);
    ctx.fillRect(0,0, 10, 10)
    ctx.restore(); ctx.save();
    ctx.fillStyle='red';
    ctx.translate(20, 20);
    ctx.fillRect(0,0, 10, 10);
    ctx.restore(); ctx.save();
    ctx.fillStyle='blue';
    ctx.translate(30, 30);
    ctx.fillRect(0,0, 10, 10);
    ctx.restore(); ctx.save();
    ctx.fillStyle='green';
    ctx.translate(40, 40);
    ctx.fillRect(0,0, 10, 10);
  3. 旋转画布

    ctx.fillStyle='orange';
    ctx.translate(200, 200); for(var i = 1; i <= 18; i++){
    ctx.rotate((Math.PI / 180) * 20 * i);
    ctx.fillRect(0, 0, 100, 100);
    }
  4. 缩放坐标轴

    ctx.fillStyle='orange';
    ctx.font = '30px serif';
    ctx.translate(200, 100);
    ctx.scale(-1, 1);
    ctx.fillText('Hello world', 10, 50);

canvas变换的更多相关文章

  1. 【转】android Graphics(四):canvas变换与操作

    android Graphics(四):canvas变换与操作 分类: 5.andriod开发2014-09-05 15:05 5877人阅读 评论(18) 收藏 举报   目录(?)[+]   前言 ...

  2. android Graphics(四):canvas变换与操作

    前言:前几篇讲解了有关canvas绘图的一些操作,今天更深入一些,讲讲对画布的操作,这篇文章不像前几篇那么容易理解,如果以前没有接触过画布的童鞋可能比较难以理解,为什么会这样.我尽量多画图,让大家更清 ...

  3. canvas变换(移动,缩放等)

    代码: 1 /** 2 * Created by Administrator on 2016/1/30. 3 */ 4 function draw (id){ 5 var canvas = docum ...

  4. 自定义控件之canvas变换和裁剪

    1.平移 //构造两个画笔,一个红色,一个绿色 Paint paint_green = generatePaint(Color.GREEN, Paint.Style.STROKE, 3); Paint ...

  5. 自定义控件之绘图篇(四):canvas变换与操作

    具体操作见下面链接: http://blog.csdn.net/harvic880925/article/details/39080931/

  6. 小程序canvas 变换

    var ctx = wx.createCanvasContext('base'); var centerX = 375/ 2; var centerY = 200; var rotate = 90; ...

  7. HTML5 程序设计 - 使用HTML5 Canvas API

    请你跟着本篇示例代码实现每个示例,30分钟后,你会高喊:“HTML5 Canvas?!在哥面前,那都不是事儿!” 呵呵.不要被滚动条吓到,很多都是代码和图片.我没有分开写,不过上面给大家提供了目录,方 ...

  8. 讲解Canvas中的一些重要方法

    Canvas所提供的各种方法根据功能来看大致可以分为几类: 第一是以drawXXX为主的绘制方法: 第二是以clipXXX为主的裁剪方法: 第三是以scale.skew.translate和rotat ...

  9. html5 Canvas API

    详细内容请点击 1.HTML Canvas API有两方面优势可以弥补:首先,不需要将所绘制图像中的每个图元当做对象存储,因此执行性能非常好:其次,在其他编程语言现有的优秀二维绘图API的基础上实现C ...

随机推荐

  1. 定义 S4 类

    S3 类仅用一个字符向量表示,与之不同的是,S4 类要求对类和方法有正式定义.为了定义一个 S4 类,我们需要调用 setClass( ),并提供一种类成员的表示,这种表示被称为字段(slots).通 ...

  2. JavaScript权威指南--类和模块

    知识要点 每个javascript对象都是一个属性集合,相互之间没有任何联系.在javascript中也可以定义对象的类,让每个对象都共享某些属性,这种“共享”的特性是非常有用的.类的成员或实例都包含 ...

  3. Python——列表表达式

    https://www.cnblogs.com/xuyuanyuan123/p/6718403.html

  4. 机器学习算法--svm实战

    1.不平衡数据分类问题 对于非平衡级分类超平面,使用不平衡SVC找出最优分类超平面,基本的思想是,我们先找到一个普通的分类超平面,自动进行校正,求出最优的分类超平面 测试代码如下: import nu ...

  5. Gitea docker-compose.yaml

    docker-compose.yaml version: "2" networks: gitea: external: false services: server: image: ...

  6. Leetcode 52

    //N皇后的基础上改了一点class Solution { public: int totalNQueens(int n) { ; vector<); DFS(pos,,res); return ...

  7. SQL向一个表中批量插入&&删除大量数据

    插入: 1. 数据从另一个表中获取 (1)两表结构不一样insert into tb1 需要的列名 select 按照前面写上需要的列名 from tb2(2)两表结构一样insert into tb ...

  8. 3321 Apple Tree 树状数组

    LIANJIE:http://poj.org/problem?id=3321 给你一个多叉树,每个叉和叶子节点有一颗苹果.然后给你两个操作,一个是给你C清除某节点上的苹果或者添加(此节点上有苹果则清除 ...

  9. zookeeper的安装和部署

    参考: https://testerhome.com/topics/11361 http://blog.csdn.net/lihao21/article/details/51778255 https: ...

  10. Jquery表单清空

    虽然reset方法可以做到一部分,但是如果你有个元素是这样的 <input name="percent" value="50"/> 那么点击rese ...