zoukankan      html  css  js  c++  java
  • 如何在canvas中画出一个太极图

    先放一个效果图:

    代码如下

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title></title>
        </head>
        <body>
            <canvas width="600px" height="600px" id="canvas"></canvas>
            <script type="text/javascript">
                var canvas = document.getElementById("canvas");
                var ctx = canvas.getContext("2d");
                
                ctx.arc(300,300,100,0,2*Math.PI)
                ctx.stroke();
                
                ctx.beginPath();
                ctx.arc(300,300,100,0.5*Math.PI,1.5*Math.PI)
                ctx.fill();
                
                ctx.beginPath();
                ctx.arc(300,250,50,0.5*Math.PI,1.5*Math.PI);
                ctx.fillStyle = "white";
                ctx.fill();
                
                ctx.beginPath();
                ctx.arc(300,350,50,1.5*Math.PI,0.5*Math.PI);
                ctx.fillStyle = "black";
                ctx.fill();
                
                ctx.beginPath();
                ctx.arc(300,250,25,0,2*Math.PI);
                ctx.fillStyle = "black";
                ctx.fill();
                
                ctx.beginPath();
                ctx.arc(300,350,25,0,2*Math.PI);
                ctx.fillStyle = "white";
                ctx.fill();
            </script>
        </body>
    </html>

    具体来说,先画出一个圆

     ctx.arc(300,300,100,0,2*Math.PI)
                ctx.stroke();

    然后在圆的左半边填充黑色

    ctx.beginPath();
                ctx.arc(300,300,100,0.5*Math.PI,1.5*Math.PI)
                ctx.fill();

    然后在圆心纵坐标上下各二分之一半径处分别画一个圆,一个填充黑色,一个填充白色

                ctx.beginPath();
                ctx.arc(300,250,50,0.5*Math.PI,1.5*Math.PI);
                ctx.fillStyle = "white";
                ctx.fill();
                
                ctx.beginPath();
                ctx.arc(300,350,50,1.5*Math.PI,0.5*Math.PI);
                ctx.fillStyle = "black";
                ctx.fill();

    最后在这两个圆内分别填充一个更小的圆,一个黑色,一个白色

    ctx.beginPath();
                ctx.arc(300,250,25,0,2*Math.PI);
                ctx.fillStyle = "black";
                ctx.fill();
                
                ctx.beginPath();
                ctx.arc(300,350,25,0,2*Math.PI);
                ctx.fillStyle = "white";
                ctx.fill();
  • 相关阅读:
    在平面中,一个点绕任意点旋转θ度后的点的坐标
    消息队列
    通过注册表修改默认打开方式
    Beagleboneblack的MLO文件干了些啥
    input子系统 KeyPad-Touch上报数据格式与机制
    字符编码
    find命令之exec
    Jmeter(一)-Linux上的安装和使用
    for循环删除linkedlist中的元素。。。。。。
    Java中组装String字符串常用的几种防范
  • 原文地址:https://www.cnblogs.com/qsdf/p/10111327.html
Copyright © 2011-2022 走看看