今天想要学习制作一个抽奖的转盘,想用canvas来绘制转盘,于是重新学习了一下canvas.
1、canvas的使用
要使用元素,必须先设置其width和height属性,制定额可以绘图的区域大小。出现在开始和结束标签中的内容是后备信息,如果浏览器不支持元素,就会显示后备信息。

<canvas id="inner-circle" width="510px" height="510px">您的浏览器不支持canvas</canvas>在画布上绘图,需要取得绘图上下文。
    var canvas = document.getElementById("inner-circle");var context = canvas.getContext("2d");
2、因为有设计好的抽奖psd文件,所以,切图完毕后,需要用canvas绘制图片,用到了drawImage(),这个函数接受的参数 要绘制的图像,绘制的x坐标,y坐标。
    var canvas = document.getElementById("inner-circle");var context = canvas.getContext("2d");var image = new Image();image.onload=function(){context.drawImage(image,0,0);}image.src = "images/inner-circle.png";

3、需要编写旋转函数,让转盘旋转。这一步的时候,遇到了困难,因为如果想让图像围绕着其中心点旋转,需要移动绘图原点。

         function rotate(){var x = canvas.width/2; //画布宽度的一半var y = canvas.height/2;//画布高度的一半context.clearRect(0,0, canvas.width, canvas.height);//先清掉画布上的内容context.translate(x,y);//将绘图原点移到画布中点context.rotate((Math.PI/180)*5);//旋转角度context.translate(-x,-y);//将画布原点移动context.drawImage(image,0,0);//绘制图片     }

4.调用rotate(),用self.setInterval(rotate,80);每隔一段时间调用一次

至此,转盘就可以旋转了

rotate()函数编写的时候,参考了很多网上的文章,也花费了一些功夫,这一篇讲的比较明白理解canvas的rotate中心点

canvas绘图 -实现图片围绕中心点旋转相关推荐

  1. html5 中心点旋转,html5 canvas围绕中心点旋转

    围绕中心点旋转 window.addEventListener('load',eventWindowLoaded,false); function eventWindowLoaded(){ canva ...

  2. 一个围绕中心点旋转的动画效果

    View围绕中心点旋转,直接上代码: final ObjectAnimator animator = ObjectAnimator.ofFloat(imageView, "rotation& ...

  3. 利用CSS让图片围绕中心旋转

    起因: 需要一个刷新按钮,一点击就自己旋转一圈,刚开始是想到做一个GIF图,点击图片后就换图片路径. 今天创建react脚手架的时候,看到了react的LOGO在自己动,就看了看他的css. 代码: ...

  4. css动画将图片绕着中心点旋转

    @keyframes App-logo-spin {from {transform: rotate(0deg);}to {transform: rotate(360deg);} }@media (pr ...

  5. fabricjs 围绕对象中心点旋转

    先吐槽一下现在网上搜索的东西,莆田货先不说,牛鬼蛇神,各显神通,要么是千篇一律.答非所问,要么是无人善后的半吊子回答,再要么是上个世纪的古董玩意儿,这样让我们这些面向百度编程的人很难办啊! 围绕左上角 ...

  6. Android Canvas.roate中心点旋转问题

    在自定义View时候使用Canvas画图时候有时候需要对内容进行旋转,在使用roate旋转时候都知道围绕中心点旋转.但是中心点是哪里呢,中心点就是绘制区域的左上角,假如现在已经使用canvas绘制了好 ...

  7. C#图片动画效果(旋转360度)异步

    private void Button1_Click(object sender, EventArgs e){Graphics graphics = this.CreateGraphics();gra ...

  8. canvas绘图中的图片组合

    canvas绘图中的图片组合 时间2020-4-4周六(第一次写,也就是一个学习总结) 1.canvas简介 canvas使用方法 各种样式及例子(只需要在两个图片的代码中加入globalCompos ...

  9. Android中Canvas绘图之Shader使用图文详解

    概述 我们在用Android中的Canvas绘制各种图形时,可以通过Paint.setShader(shader)方法为画笔Paint设置shader,这样就可以绘制出多彩的图形.那么Shader是什 ...

最新文章

  1. 不要依赖代码中的异常
  2. SP11469 SUBSET - Balanced Cow Subsets(折半搜索+状态压缩)难度⭐⭐⭐⭐★
  3. 转:SAP 零售业POS心得分享
  4. 避无可避:Mesos安全问题的几点思考
  5. 数字、字符串、列表类型及常用内置方法
  6. Educational Codeforces Round 13 E. Another Sith Tournament 状压dp
  7. 循环嵌套小星星-嵌套循环完成案例
  8. 【POJ - 2019】Cornfields(二维st表,模板)
  9. CSS实现段落首行缩进
  10. DDR2与DDR的区别
  11. SocksCap64
  12. 超千人围观,普及 “反诈” 常见场景及应对手段,还有黑灰产攻防手段
  13. National Day
  14. USGS官方的各种卫星数据产品的详细说明(很多英文缩写都可在这里找到详细信息,如ETM+和TM的意思,也可以下载)
  15. python语言可以处理数据文件吗_Python语言读取Marc后处理文件基础知识.pdf
  16. whistle安装使用教程2021最详细
  17. java map转JSON对象
  18. 新生儿上户口之异地办理
  19. 微博敲定在香港上市发行价:定价相对下降三成,散户认购情况惨淡
  20. eclipse 字体大小设置

热门文章

  1. java println()中_java中system.out.println()是什么意思
  2. Android系统:SystemUi需要注意的一些知识点
  3. arguments作用
  4. 015:vue+openlayers 添加鹰眼效果( 代码示例 )
  5. GB50396出入口控制系统工程设计规范
  6. vs,qt编程软件中,光标变粗
  7. jwt-tool-master爆破密钥
  8. java不要登录发送邮件noReply
  9. JS lesson1基本语法
  10. css 表头不滚动,css固定表头不随滚动条移动.doc