Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

HTML 画布圆形


arc() 方法

可以使用 arc() 方法来定义一个圆形。

arc() 方法具有以下参数

参数 描述
x 必填。圆心横坐标
y 必填。圆心纵坐标
radius 必填。圆形半径
startAngle 必填。圆弧起始角度(以弧度表示)
endAngle 必填。圆弧结束角度(以弧度表示)
counterclockwise 可选。布尔值。如果设置为 true,则在起始和结束角度之间逆时针绘制圆弧。默认值为 false(顺时针)

绘制一个完整的圆形

我们可以通过将 startAngle 定义为 0,将 endAngle 定义为 2 * PI 来使用 arc() 方法创建一个完整的圆形。

要在画布上绘制一个圆形,请使用以下方法:

  • beginPath() - 开始一条路径
  • arc() - 定义一个圆形
  • stroke() - 绘制它

示例

你的浏览器不支持 HTML5 画布标签。
<script>
const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");

ctx.beginPath();
ctx.arc(95, 50, 40, 0, 2 * Math.PI);
ctx.stroke();
</script>
动手试一试 »


用颜色绘制一个完整的圆形

向圆形添加填充颜色和描边颜色

示例

你的浏览器不支持 HTML5 画布标签。
<script>
const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");

ctx.beginPath();
ctx.arc(95, 50, 40, 0, 2 * Math.PI);
ctx.fillStyle = "red";
ctx.fill();
ctx.lineWidth = 4;
ctx.strokeStyle = "blue";
ctx.stroke();
</script>
动手试一试 »

绘制一个半圆

这里我们将 endAngle 更改为 PI(而不是 2 * PI)

示例

你的浏览器不支持 HTML5 画布标签。
<script>
const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");

ctx.beginPath();
ctx.arc(95, 50, 40, 0, Math.PI);
ctx.fillStyle = "red";
ctx.fill();
ctx.stroke();
</script>
动手试一试 »

关于圆弧角度的更多信息

下图显示了圆弧中的一些角度

Angles of an arc

中心:arc(100, 75, 50, 0 * Math.PI, 1.5 * Math.PI)

起始角度:arc(100, 75, 50, 0, 1.5 * Math.PI)

结束角度:arc(100, 75, 50, 0 * Math.PI, 1.5 * Math.PI)

示例

这里我们想从起始角度 0 绘制到结束角度 0.5 * PI 的圆弧

你的浏览器不支持 HTML5 画布标签。
<script>
const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");

ctx.beginPath();
ctx.arc(95, 50, 40, 0, 0.5 * Math.PI);
ctx.stroke();
</script>
动手试一试 »

示例

这里我们做同样的事情,但将 counterclockwise 参数设置为 true(它会在起始和结束角度之间逆时针绘制圆弧)

你的浏览器不支持 HTML5 画布标签。
<script>
const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");

ctx.beginPath();
ctx.arc(95, 50, 40, 0, 0.5 * Math.PI, true);
ctx.stroke();
</script>
动手试一试 »

×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.