JavaScript中canvas绘制太极图案

代码如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        canvas{background: #A9A9A0}
    </style>
</head>
<body>
    <canvas id="mycanvas" width="800" height="600"></canvas><!-- 创建canvas元素设置画布的宽和高 -->
    <script type="text/javascript">
        var canvas = document.getElementById("mycanvas");  //获取canvas元素
        var context = canvas.getContext('2d');//获取上下文的环境

        g1 = context.createLinearGradient(400,100,400,500);//创建线性的渐变对象,参数分别为渐变开始点的x、y坐标,渐变结束点的x、y坐标。
        g1.addColorStop(0,"black");//addColorStop指定各个位置的颜色
        g1.addColorStop(1,"white");

        g2 = context.createLinearGradient(400,100,400,500);
        g2.addColorStop(0,"white");
        g2.addColorStop(1,"black");

        g3 = context.createRadialGradient(400,200,1,400,200,10);//创建放射状/圆形渐变对象,参数分别为渐变开始圆的x、y坐标,开始圆的半径,渐变结束圆的x、y坐标,结束圆的半径。
        g3.addColorStop(0,"white");
        g3.addColorStop(1,"black");

        g4 = context.createRadialGradient(400,400,1,400,400,10);
        g4.addColorStop(0,"black");
        g4.addColorStop(1,"white");

        context.arc(400,300,200,1/2*Math.PI,3/2*Math.PI);//arc方法创建圆弧、曲线,参数分别为圆中心的x坐标、圆中心的y坐标、圆的半径、起始角、结束角
        context.arc(400,200,100,1/2*Math.PI,3/2*Math.PI,true);//counterclockwise(可选)False = 顺时针,true = 逆时针。
        context.arc(400,400,100,0.5*Math.PI,1.5*Math.PI);
        context.fillStyle=g1;//设置或返回用于填充绘画的颜色、渐变或模式。
        context.fill();

        context.beginPath();//在一个画布中开始子路径的一个新的集合。
        context.arc(400,300,200,1/2*Math.PI,3/2*Math.PI,true);
        context.arc(400,200,100,1.5*Math.PI,0.5*Math.PI);
        context.arc(400,400,100,3/2*Math.PI,1/2*Math.PI,true);
        context.fillStyle=g2;
        context.fill();

        context.beginPath();
        context.arc(400,200,10,0,Math.PI*2);
        context.fillStyle = g3;
        context.fill();

        context.beginPath();
        context.arc(400,400,10,0,Math.PI*2);
        context.fillStyle = g4;
        context.fill();
    </script>
</body>
</html>

效果图是这样的
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值