canvs中的arc方法详解

本文详细介绍如何使用canvas的arc方法绘制复杂的图形,以八卦图为例,解释了arc方法的参数意义,包括中心点坐标、半径、起始角、结束角及方向,并通过实例展示了如何绘制半圆和完整圆。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

arc的定义

在使用arc这个方法之前,你一定要知道arc方法中参数是代表什么意思
arc() 方法创建弧/曲线(用于创建圆或部分圆)。
提示:如需通过 arc() 来创建圆,请把起始角设置为 0,结束角设置为 2Math.PI。
提示:请使用 stroke() 或 fill() 方法在画布上绘制实际的弧。
在这里插入图片描述
绿色中心: arc(100,75,50,0
Math.PI,1.5Math.PI)
红色起始角: arc(100,75,50,0,1.5
Math.PI)
蓝色结束角: arc(100,75,50,0Math.PI,1.5Math.PI)

context.arc(x,y,r,sAngle,eAngle,counterclockwise);

参数描述
x圆的中心的 x 坐标。
y圆的中心的 y 坐标。
r圆的半径。
sAngle起始角,以弧度计(弧的圆形的三点钟位置是 0 度)。
eAngle结束角,以弧度计。
counterclockwise可选。规定应该逆时针还是顺时针绘图。False = 顺时针,true = 逆时针。

现在我们就实例一个八卦图

我们要实现的是这样

首先我没我们先画一个白色的半圆
在这里插入图片描述

<div class="dora-comm">
    <canvas id="canvas" width="400" height="400"></canvas>
  </div>
  var canvas = document.getElementById('canvas')
        var context = canvas.getContext('2d')
        //先绘制一个半圆
        context.beginPath()
        context.arc(200,200,80,1.5*Math.PI,0.5*Math.PI,false)
        context.fillStyle = 'white'
        context.closePath()   //当前点和起始点之前闭合
        context.fill()  //填充当前的图像(路径)

接下来我们实现半个黑色的半圆
在这里插入图片描述

 //绘制黑色的半圆
        context.beginPath()
        context.arc(200,200,80,1.5*Math.PI,0.5*Math.PI,true)
        context.fillStyle = 'black'
        context.closePath()
        context.fill()

绘制黑色小圆
在这里插入图片描述

 //绘制白色的小半圆
        context.beginPath()
        context.arc(200,160,40,1.5*Math.PI,0.5*Math.PI,true)
        context.fillStyle = 'white'
        context.closePath()
        context.fill()

        //绘制黑色小半圆
        context.beginPath()
        context.arc(200,240,40,1.5*Math.PI,0.5*Math.PI,false)
        context.fillStyle='black'
        context.closePath()
        context.fill()

在绘制黑色的小圆
在这里插入图片描述

 //绘制黑色小圆
        context.beginPath()
        context.arc(200,160,5,0,2*Math.PI,false)
        context.fillStyle='black'
        context.closePath()
        context.fill()

        //绘制白色小圆
        context.beginPath()
        context.arc(200,240,5,0,2*Math.PI,false)
        context.fillStyle='white'
        context.closePath()
        context.fill()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值