Translate:坐标转化

默认Canvas的起启坐标0,0是在右上角,如果让中起启坐标放在中心点就可以这样做

context.translate(centerX,centerY);

Rotate:旋转的角度(确切的说是弧度)

弧度=角度*PI/180

角度=弧度*180/PI

下面的一个例子就是使用到了坐标转化和旋转

按左右键可以让方块转动

//获取Canvas对象

var canvas=document.getElementById("stage");
        var context=canvas.getContext("2d");    
        
        //矩形大小
        var width=100;
        var height=100;
        
        
        //旋转频率
        var angelSpeed=5;
        
        //中心点位值
        var centerX=canvas.width/2;
        var centerY=canvas.height/2;
        
        //绘制钜形
        //将坐标中心作为起启点
        context.translate(canvas.width/ 2, canvas.height/ 2);
        DrawRect(0);
            
            
        //添加键盘处理事件        
         window.addEventListener("keydown", onKeyDown, false);

function onKeyDown(evt)
            {
                if(evt.keyCode=="39")
                {
                    
                        DrawRect(angelSpeed);                
                }
                else if(evt.keyCode=='37')
                {
                    
                      DrawRect(-angelSpeed);
                }
                
            }
            
            function DrawRect(speed)
            {
                
                context.clearRect(-width/2-width,-height/2-height, canvas.width, canvas.height);                        
                context.beginPath();         
                context.strokeStyle = '#ff0000'
                context.fillStyle='#ff0000';                
        
                //旋转
                context.rotate(speed*Math.PI/180);
                context.fillRect(-width/2,-height/2,width,height);
                context.fill();
                context.stroke();                
                context.closePath();    
                
                    
            }

作者:Louja
出处:http://loujady.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此声明,且在文章页面给出原文连接,否则保留追究法律责任的权利。

转载于:https://www.cnblogs.com/loujady/archive/2011/12/09/2281659.html

HTML5 Canvas translate与rotate应用相关推荐

  1. Canvas translate,scale,rotate

    下面使用三个小例子作为讲解: 1.translate:将canvas默认的原点(0,0),进行移动 import android.content.Context; import android.gra ...

  2. Canvas之translate,scale,rotate,skew

    Canvas之translate,scale,rotate,skew Canvas大致可以分为三类: save,restore等与层相关的保存和回滚相关方法 scale,rotate,clipXXX等 ...

  3. html矩形坐标理解,HTML canvas中translate()与rotate()的理解

    首先,当我们在页面上初始化canvas时,相当于在上面放了一块画布,这块画布我们可以理解为上面有一个坐标系(如下图),左上角是原点,往右是X轴的正方向,往下是Y轴的正方向,我们在画布上绘制的内容都是基 ...

  4. HTML5 canvas画图

    HTML5 canvas画图 HTML5 <canvas> 标签用于绘制图像(通过脚本,通常是 JavaScript). 不过,<canvas> 元素本身并没有绘制能力(它仅仅 ...

  5. HTML5 Canvas 绘制库存变化折线 增加超储告罄线

    <!DOCTYPE html> <html lang="utf-8"> <meta http-equiv="Content-Type&quo ...

  6. html canvas抽奖,HTML5 Canvas圆盘抽奖应用(适用于Vue项目)

    HTML5 Canvas圆盘抽奖应用DEMO演示 }.xttblog_box{width:300px;height:300px;margin:100px auto;position:relative; ...

  7. c html canvas,HTML5 canvas

    绘制圆形 function draw(id){ let canvas = document.getElementById(id) if (canvas == null){ return false } ...

  8. HTML5 Canvas 绘制旋转45度佛教万字

    效果如下: 代码如下: <!DOCTYPE html> <html lang="utf-8"> <meta http-equiv="Cont ...

  9. HTML5 Canvas

    HTML5 Canvas 转自:https://blog.csdn.net/u012468376/article/details/73350998 一.canvas简介 ​  <canvas&g ...

最新文章

  1. ISME:中大李文均组在放线菌生命暗物质的生态功能与进化上取得进展
  2. 未来一年最有可能成为独角兽的29家美国初创公司
  3. ubuntu ibus谷歌输入法安装
  4. jvm性能调优 - 03垃圾回收机制
  5. iOS之widget开发(Today Extension)
  6. linux ar 命令详解
  7. PS教程第二十一课:有了选区就有了界限
  8. 什么是python自动化测试_python已经自动化了,大家一般用什么测试框架?
  9. git 强制将本地代码更新仓库里面的代码
  10. 漏洞升级?黑客可利用 Spring 框架漏洞部署 Mirai 恶意软件
  11. c语言对称矩阵的压缩存储_对称矩阵的压缩存储和输出
  12. 标签系列三:spring 中property解释以及property标签里面的属性
  13. 翻译PDF 翻译PPT 保留原格式 一键搞定
  14. mysqld: [ERROR] Found option without preceding group in config file D:\MySql\MyS ql\my.ini at line 1
  15. UML之独孤九剑总纲
  16. 【总结】PHP常见面试题汇总(一)
  17. 论文速递 EMNLP2022 | 接受论文抢先看!!!(内含下载列表)
  18. 搜狗有一个超良心的功能 Ctrl+shift+E
  19. C++解一元二次方程
  20. AutoCAD各版本对应的R版本参数值及其对应注册表中的数值(2002-2023)

热门文章

  1. Nature:AI为什么总是歧视重重?
  2. 全球机器学习领域顶尖的16家公司
  3. 干货!我的计算机网络怎么考了 100 分的?
  4. 在Kubernetes上运行SAP UI5应用(下): 一个例子体会Kubernetes内容器的高可用性和弹性伸缩...
  5. 儿童二类疫苗是否有必要接种
  6. Linux下计划任务和标准化工作流程
  7. hexo绑定个人域名
  8. ASA LAB-ASA NAT配置大全
  9. nagios插件之登陆防火墙实现session监控
  10. SciDB 15.7 centos6.5 安装教程