js实现圆形
使用Canvas绘制圆形
在HTML5的Canvas中,可以通过arc()方法绘制圆形。以下是一个简单的示例代码:
const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.arc(100, 100, 50, 0, Math.PI * 2);
ctx.fillStyle = 'blue';
ctx.fill();
arc()方法的参数依次为:圆心x坐标、圆心y坐标、半径、起始角度、结束角度(以弧度计),以及是否逆时针绘制(可选)。
使用SVG创建圆形
SVG提供了<circle>元素来绘制圆形:
<svg width="200" height="200">
<circle cx="100" cy="100" r="50" fill="red" />
</svg>
cx和cy属性定义圆心的坐标,r定义半径,fill定义填充颜色。
使用CSS绘制圆形
通过CSS的border-radius属性可以将一个正方形元素变成圆形:
.circle {
width: 100px;
height: 100px;
background-color: green;
border-radius: 50%;
}
将border-radius设置为50%即可实现圆形效果。这种方法简单且不需要JavaScript。
使用WebGL绘制圆形
在WebGL中绘制圆形需要更复杂的代码,通常需要创建顶点数据:
const canvas = document.getElementById('glCanvas');
const gl = canvas.getContext('webgl');
// 顶点着色器
const vsSource = `
attribute vec2 aPosition;
void main() {
gl_Position = vec4(aPosition, 0.0, 1.0);
}
`;
// 片段着色器
const fsSource = `
precision mediump float;
void main() {
gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
}
`;
// 创建着色器程序等WebGL初始化代码
// 然后创建圆形顶点数据并绘制
WebGL方法适合需要高性能图形渲染的场景,但实现相对复杂。
使用第三方库绘制圆形
许多JavaScript图形库如D3.js、p5.js等提供了更简单的圆形绘制方法。以p5.js为例:

function setup() {
createCanvas(400, 400);
}
function draw() {
ellipse(200, 200, 100, 100);
}
第三方库通常封装了底层细节,提供了更简洁的API。






