選單
×
   ❮     
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 提供支援