菜单
×
   ❮     
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 Canvas 曲线


HTML Canvas 曲线

在 canvas 中绘制曲线最常用的三种方法是:

  • arc() 方法(在 Canvas Circles 章节中已描述)
  • quadraticCurveTo() 方法
  • bezierCurveTo() 方法

quadraticCurveTo() 方法

quadraticCurveTo() 方法用于定义二次贝塞尔曲线。

quadraticCurveTo() 方法包含以下参数:

参数 描述
cpx 必需。控制点的 x 坐标
cpy 必需。控制点的 y 坐标
x 必需。终点的 x 坐标
y 必需。终点的 y 坐标

quadraticCurveTo() 方法需要两个点:一个控制点和一个终点。起始点是当前路径中的最后一个点,可以通过在创建二次贝塞尔曲线之前使用 moveTo() 来更改。

要在 canvas 上绘制曲线,请使用以下方法:

  • beginPath() - 开始一个路径
  • moveTo() - 定义起始位置
  • quadraticCurveTo() - 定义二次贝塞尔曲线
  • stroke() - 绘制它

示例

此二次贝塞尔曲线从 moveTo() 指定的点 (10, 100) 开始。控制点位于 (250, 170)。曲线在 (230, 20) 结束。

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

ctx.beginPath();
ctx.moveTo(10, 100);
ctx.quadraticCurveTo(250, 170, 230, 20);
ctx.stroke();
</script>
自己动手试一试 »


bezierCurveTo() 方法

bezierCurveTo() 方法用于定义三次贝塞尔曲线。

bezierCurveTo() 方法包含以下参数:

参数 描述
cp1x 必需。第一个控制点的 x 坐标
cp1y 必需。第一个控制点的 y 坐标
cp2x 必需。第二个控制点的 x 坐标
cp2y 必需。第二个控制点的 y 坐标
x 必需。终点的 x 坐标
y 必需。终点的 y 坐标

bezierCurveTo() 方法需要三个点:两个控制点和一个终点。起始点是当前路径中的最后一个点,可以通过在创建三次贝塞尔曲线之前使用 moveTo() 来更改。

要在 canvas 上绘制曲线,请使用以下方法:

  • beginPath() - 开始一个路径
  • moveTo() - 定义起始位置
  • bezierCurveTo() - 定义三次贝塞尔曲线
  • stroke() - 绘制它

示例

此三次贝塞尔曲线从 moveTo() 指定的点 (20, 20) 开始。第一个控制点位于 (110, 150)。第二个控制点位于 (180, 10)。曲线在 (210, 140) 结束。

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

ctx.beginPath();
ctx.moveTo(20, 20);
ctx.bezierCurveTo(110, 150, 180, 10, 210, 140);
ctx.stroke();
</script>
自己动手试一试 »

×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持