zoukankan      html  css  js  c++  java
  • Canvas绘制图形

      1.Canvas绘制一个蓝色的矩形

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
    
    </head>
    <body>
    
        <canvas id="myCanvas" width="300" height="200"></canvas>
    
       <script type="text/javascript">
        var canvas=document.getElementById('myCanvas');
        var ctx=canvas.getContext('2d');
        ctx.fillStyle='#000099';
        ctx.fillRect(0,0,80,100);
        </script>
    </body>
    </html>

             显示

    2.绘制基本的直线

       ①绘制直线

    <body>
        <canvas id="myCanvas"></canvas>
    
       <script type="text/javascript">
           var canvas=document.getElementById("myCanvas");  //获取Canvas对象
           var ctx=canvas.getContext("2d");            //获取上下文对象
           ctx.beginPath();                             //开始一个新的绘制路径
           ctx.moveTo(10,10);                           //定义直线的起点坐标
           ctx.lineTo(200,10);                          //定义直线的终点坐标
           ctx.stroke();                                //沿着坐标点顺序的路径绘制直线
           ctx.closePath();                             //关闭当前的绘制路径
       </script>
    </body>

           显示:

         ② 绘制二次曲线:

          是直线锥面的两腔被一平面所截而得的曲线。二次曲线由一个起点、一个终点和一个控制点决定,当控制点经过圆锥顶点时,曲线变成一个点、直线或者相交直线,当控制点不经过圆锥顶点时,曲线可能是圆、锥圆、双曲线或抛物线。     

    <body>
    
    <canvas id="myCanvas">您的浏览器不支持canvas标签</canvas>
    
    <script type="text/javascript">
    var canvas=document.getElementById('myCanvas');
    if(canvas && canvas.getContext){                //判断Canvas对象是否为空    
        var ctx = canvas.getContext("2d");            //获取Canvas对象上下文    
        ctx.beginPath();                                //开始一个新的绘制路径
        ctx.moveTo(100,50);                            //定义直线的起点坐标为(100,50)
        ctx.quadraticCurveTo(100,15,300,30);        //设置二次曲线坐标
        ctx.stroke();                                    //绘制路径    
    }
    </script>
    
    </body>

          判断Canvas对象是否为空:是因为有些浏览器对Canvas的支持不是很好,为了避免网页运行时出现错误,需要提前判断。

          显示:

         ③绘制贝赛尔曲线

         每一个顶点都有两个控制点,用于控制在该顶点两侧的曲线的弧度。它的一个起点、一个终点、两个控制点,共四个点决定一条曲线。是用Canvas的bezierCurveTo函数绘制贝赛尔函数

         

    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>4.2.3.html</title>
    </head>
    <body>
    <canvas id="myCanvas">您的浏览器不支持canvas标签</canvas>
    <script type="text/javascript">
    var canvas=document.getElementById('myCanvas');
    if(canvas && canvas.getContext){                //判断Canvas对象是否为空
        var ctx = canvas.getContext("2d");            //获取Canvas对象上下文
        ctx.beginPath();                                //开始一个新的绘制路径
        ctx.moveTo(50,200);                            //定义直线的起点坐标为(50,200)
        ctx.bezierCurveTo(50,100,200,100,200,150);    //设置贝塞尔曲线坐标
        ctx.stroke();                                    //绘制路径
    }
    </script>
    </body>
    </html>

           显示:

            ④绘制圆弧 

     1 <!doctype html>
     2 <html>
     3 <head>
     4 <meta charset="utf-8">
     5 <title>4.2.4.html</title>
     6 </head>
     7 <body>
     8 
     9 <canvas id="myCanvas">您的浏览器不支持canvas标签</canvas>
    10 
    11 <script type="text/javascript">
    12 var canvas=document.getElementById('myCanvas');
    13 
    14 if(canvas && canvas.getContext){                //判断Canvas对象是否为空    
    15     var ctx = canvas.getContext("2d");            //获取Canvas对象上下文    
    16     ctx.beginPath();                                //开始一个新的绘制路径    
    17     ctx.arc(100,75,50,0,2*Math.PI*0.75);        //设置圆弧坐标
    18     ctx.stroke();                                    //绘制路径    
    19 }
    20 </script>
    21 </body>
    22 </html>

            显示:

    3.绘制简单形状

          ①绘制圆形

          

     1 <!doctype html>
     2 <html>
     3 <head>
     4 <meta charset="utf-8">
     5 <title>4.3.1.html</title>
     6 </head>
     7 <body>
     8 
     9 <canvas id="myCanvas">您的浏览器不支持canvas标签</canvas>
    10 
    11 <script type="text/javascript">
    12 var canvas=document.getElementById('myCanvas');
    13 if(canvas && canvas.getContext){                //判断Canvas对象是否为空    
    14     var ctx = canvas.getContext("2d");            //获取Canvas对象上下文    
    15     ctx.beginPath();                                //开始一个新的绘制路径    
    16     ctx.arc(100,75,50,0,2*Math.PI);                //设置圆坐标
    17     ctx.stroke();                                    //绘制路径    
    18 }
    19 </script>
    20 </body>
    21 </html>

          显示:

         ②绘制三角形

       绘制三条直线,并设置三条直线的起点和终点相互连接

       

     1 <!DOCTYPE html>
     2 <html>
     3 <head lang="en">
     4     <meta charset="UTF-8">
     5     <title></title>
     6 </head>
     7 <body>
     8 
     9    <canvas id="myCanvas"></canvas>
    10 
    11    <script type="text/javascript">
    12        var canvas=document.getElementById('myCanvas');
    13        if(canvas && canvas.getContext){          //判断Canvas对象是否为空
    14            var ctx=canvas.getContext("2d");     //获取Canvas对象上下文
    15            ctx.beginPath();                       //开始一个新的绘制路径
    16            ctx.moveTo(0,10);                      //设置三角形的起点
    17            ctx.lineTo(200,20);                    //设置三角形的第二个起点
    18            ctx.lineTo(280,100);                   //设置三角形的第三个起点起点
    19            ctx.closePath();                       //将三角形第三个点与起点连接
    20            ctx.stroke();                          //绘制路径
    21        }
    22    </script>
    23 </body>
    24 </html>

         显示:

        ③绘制圆角矩阵

       将使用arcTo函数绘制圆角矩阵,arcTo(x1,x2,y1,y2,r):绘制介于两个切线之间的圆弧,坐标点(x1,y1)为圆弧的起点坐标,(x2,y2)为圆弧的终点坐标,r为圆弧的半径。  

     1 <body>
     2 
     3     <canvas id="myCanvas"></canvas>
     4 
     5     <script type="text/javascript">
     6         var canvas=document.getElementById("myCanvas");
     7         if(canvas && canvas.getContext){
     8             var ctx=canvas.getContext("2d");
     9             ctx.beginPath();
    10             ctx.moveTo(10,10);            //在左上方开始
    11             ctx.arcTo(100,10,100,20,10);  //绘制右上方圆角
    12             ctx.arcTo(100,110,90,110,10); //绘制右下方圆角
    13             ctx.arcTo( 0,110,0,100,10);    //绘制左下方圆角
    14             ctx.arcTo( 0,10,10,10,10);    //绘制左上方圆角
    15             ctx.stroke();
    16         }
    17     </script>
    18 </body>

         显示:

         ④绘制自定义图形    

     1 <body>
     2 
     3 <canvas id="myCanvas"></canvas>
     4 
     5 <script type="text/javascript">
     6     var canvas=document.getElementById("myCanvas");
     7     if(canvas && canvas.getContext){
     8         var ctx=canvas.getContext("2d");
     9         ctx.beginPath();
    10         ctx.arc(75,75,50,0,Math.PI*2,true);            //在左上方开始
    11         ctx.moveTo(110,75);
    12         ctx.arc(75,75,35,0,Math.PI,false);            //在左上方开始
    13         ctx.moveTo(65,65);
    14         ctx.arc(60,65,5,0,Math.PI*2,true);            //在左上方开始
    15         ctx.moveTo(95,65);
    16         ctx.arc(90,65,5,0,Math.PI*2,true);            //在左上方开始
    17 
    18         ctx.stroke();
    19     }
    20 </script>
    21 </body>

             笑脸:

         

        

         

      

  • 相关阅读:
    XtraForm中OfficeSkins以及BonusSkin皮肤的设置
    XtraForm中更换皮肤
    XtraForm默认皮肤的显示
    wcf异常汇总
    使用JS意识到自己主动提交表单
    怎么样sourceforge开源项目发现,centos安装-同htop安装案例
    战国评论(三)---一起
    Mesos-error
    iOS 执行ScrollView在空白空间-解
    【2014 Multi-University Training Contest 2 1002】/【HDU 4873】 ZCC Loves Intersection
  • 原文地址:https://www.cnblogs.com/sunli0205/p/6240953.html
Copyright © 2011-2022 走看看