canvas 2

  canvas


绘制圆形:

 arc( x,y,半径,起始弧,结束弧,旋转方向 )
   -- X,Y:圆心坐标;
   --弧度与角度的关系:弧度=角度*Math.PI/180  -->PI 是大写
    --旋转方向:顺时针(默认:false),逆时针(true)
    示例:
  
  
  1. <script>
  2. window.onload=function(){
  3. var oc=document.getElementById('c');
  4. var ocg=oc.getContext('2d');
  5. ocg.arc(150,150,150,0,360*Math.PI/180,true);
  6. ocg.stroke();
  7. }
  8. </script>

vanvas 绘制钟表:
  
  
  1. <!DOCTYPE html >
  2. <head>
  3. <title>canvas</title>
  4. <meta charset="UTF-8">
  5. <script>
  6. window.onload=function(){
  7. var oc=document.getElementById('c');
  8. var ocg=oc.getContext('2d');
  9. function toDraw(){
  10. var X=200;
  11. var Y=200;
  12. var r=150;
  13. ocg.clearRect(0,0,oc.width,oc.height)
  14. var oDate=new Date();
  15. var oHours=oDate.getHours();
  16. var oMin=oDate.getMinutes();
  17. var oSen=oDate.getSeconds();
  18. var OhoursValue=(-90+oHours*30+oMin/2)*Math.PI/180;
  19. var oMinValue=(-90+oMin*6)*Math.PI/180;
  20. var oSenValue=(-90+oSen*6)*Math.PI/180;
  21. ocg.beginPath();
  22. for (var i = 0; i <60; i++) {
  23. ocg.moveTo(X,Y);
  24. ocg.arc(X,Y,r,6*i*Math.PI/180,6*(i+1)*Math.PI/180,false)
  25. }
  26. ocg.closePath();
  27. ocg.stroke();
  28. ocg.fillStyle='white'
  29. ocg.beginPath();
  30. ocg.moveTo(X,Y);
  31. ocg.arc(X,Y,r*19/20,0,360*Math.PI/180,false)
  32. ocg.closePath();
  33. ocg.fill();
  34. ocg.lineWidth=3;
  35. ocg.beginPath();
  36. for (var i = 0; i <12; i++) {
  37. ocg.moveTo(X,Y);
  38. ocg.arc(X,Y,r,30*i*Math.PI/180,30*(i+1)*Math.PI/180,false)
  39. }
  40. ocg.closePath();
  41. ocg.stroke();
  42. ocg.fillStyle='white'
  43. ocg.beginPath();
  44. ocg.moveTo(X,Y);
  45. ocg.arc(X,Y,r*18/20,0,360*Math.PI/180,false)
  46. ocg.closePath();
  47. ocg.fill();
  48. ocg.lineWidth=5;
  49. ocg.beginPath();
  50. ocg.moveTo(X,Y);
  51. ocg.arc(X,Y,r*10/20,OhoursValue,OhoursValue,false)
  52. ocg.closePath();
  53. ocg.stroke();
  54. ocg.lineWidth=3;
  55. ocg.beginPath();
  56. ocg.moveTo(X,Y);
  57. ocg.arc(X,Y,r*14/20,oMinValue,oMinValue,false)
  58. ocg.closePath();
  59. ocg.stroke();
  60. ocg.save();
  61. ocg.lineWidth=1;
  62. ocg.strokeStyle='red'
  63. ocg.beginPath();
  64. ocg.moveTo(X,Y);
  65. ocg.arc(X,Y,r*19/20,oSenValue,oSenValue,false)
  66. ocg.closePath();
  67. ocg.stroke();
  68. ocg.restore();
  69. }
  70. setInterval(toDraw,1000)
  71. toDraw();
  72. }
  73. </script>
  74. <style type="text/css">
  75. #c{
  76. background:white;
  77. }
  78. </style>
  79. </head>
  80. <body style='background:black'>
  81. <!-- <div id="div1" data-trr="abc"></div> -->
  82. <canvas id="c" width="1000px" height="600px">你的浏览器不支持canvas</canvas>
  83. </body>
  84. </html>
绘制弧线
 arcTo( X1,Y1,X1,Y2,半径 )
   -- X1,Y1:第一个点坐标;起始点
    -- X2,Y2:第二个点坐标;
   
   
  1. <script>
  2. window.onload=function(){
  3. var oc=document.getElementById('c');
  4. var ocg=oc.getContext('2d');
  5. ocg.moveTo(100,200)
  6. ocg.arcTo(100,100,200,100,50)
  7. ocg.stroke();
  8. }
  9. </script>
绘制贝赛尔曲线:
方法1.quadraticCurveTo(dx,dy,x1,y1)
       -- dx,dy -->第一组控制点
        -- x1,y1 -->第二组结束坐标
   
   
  1. window.onload=function(){
  2. var oc=document.getElementById('c');
  3. var ocg=oc.getContext('2d');
  4. ocg.moveTo(100,200);
  5. ocg.quadraticCurveTo(100,100,200,100);
  6. ocg.stroke();
  7. }
  8. </script>
方法2.bezierCurveTo(dx1,dy1,dx2,dy2 ,x1,y1 )
            -- dx1,dy1 -->第一组控制点
       -- dx2,dy2 -->第二组控制点
        -- x1,y1 -->第三组结束坐标
  
  
  1. window.onload=function(){
  2. var oc=document.getElementById('c');
  3. var ocg=oc.getContext('2d');
  4. ocg.moveTo(100,200);
  5. ocg.bezierCurveTo(100,100,200,200,200,100);
  6. ocg.stroke();
  7. }
  8. </script>
变换:
1.translate(x,y)   -->偏移 :从起始点为基准点,移动当前坐标位置,绘制在它后的图形才会偏移,前面的不会偏移
  
  
  1. var oc=document.getElementById('c');
  2. var ocg=oc.getContext('2d');
  3. ocg.translate(100,100);
  4. ocg.fillRect(0,0,100,100);
1.rotate(角度 *Math.PI/180 )         -->旋转:参数为弧度-->以左上角为中心旋转
  
  
  1. var oc=document.getElementById('c');
  2. var ocg=oc.getContext('2d');
  3. ocg.translate(100,100);
  4. ocg.rotate(30*Math.PI/180)
  5. ocg.fillRect(0,0,100,100);
1.scale(宽的缩放比例, 的缩放比例 )         -->缩小放大 :按原来的大小的倍数进行缩小和放大
  
  
  1. var oc=document.getElementById('c');
  2. var ocg=oc.getContext('2d');
  3. ocg.translate(100,100);
  4. ocg.rotate(30*Math.PI/180)
  5. ocg.scale(2,2)
  6. ocg.fillRect(0,0,100,100);
旋转的小方块:
  
  
  1. <script>
  2. window.onload=function(){
  3. var oc=document.getElementById('c');
  4. var ocg=oc.getContext('2d');
  5. var num=0;
  6. setInterval(function(){
  7. num++;
  8. ocg.save() ;
  9. ocg.clearRect(0,0,oc.width,oc.height) ;
  10. ocg.translate(300,300);
  11. ocg.rotate(num*Math.PI/180);
  12. ocg.translate(-50,-50);
  13. ocg.fillRect(0,0,100,100);
  14. ocg.restore();
  15. },30)
  16. }
  17. </script>
旋转的放大的小方块:
  
  
  1. <script>
  2. window.onload=function(){
  3. var oc=document.getElementById('c');
  4. var ocg=oc.getContext('2d');
  5. var num=0;
  6. var num2=0;
  7. var value=1;
  8. setInterval(function(){
  9. num++;
  10. ocg.save() ;
  11. ocg.clearRect(0,0,oc.width,oc.height) ;
  12. ocg.translate(300,300);
  13. if (num2==100){
  14. value=-1
  15. }else if(num2==0){
  16. value=1
  17. }
  18. num2+=value;
  19. ocg.scale(num2*1/50,num2*1/50)
  20. ocg.rotate(num*Math.PI/180);
  21. ocg.translate(-50,-50);
  22. ocg.fillRect(0,0,100,100);
  23. ocg.restore();
  24. },30)
  25. }
  26. </script>







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值