⊗jsSpCnvLn 262 of 294 menu

การวาดเส้นผ่าน canvas บน JavaScript

เริ่มจากสิ่งง่ายๆ - การวาดเส้น ในการทำความเข้าใจว่าทำได้อย่างไร ลองนึกภาพว่าคุณมีกระดาษหนึ่งแผ่นและดินสอหนึ่งแท่ง คุณสามารถ วาดบนแผ่นกระดาษนั้น หรือเพียงแค่เลื่อนปลายดินสอไปยังจุดที่ต้องการโดยไม่ต้องวาด

JavaScript ทำงานในลักษณะเดียวกัน: มันมี "ดินสอ" (หรือปากกาสำหรับวาด) คุณสามารถเลื่อนมันไปยังตำแหน่งที่ต้องการได้ด้วยเมธอด moveTo และวาดด้วยเมธอด lineTo

เมธอดทั้งสองรับพารามิเตอร์เป็นจุดที่จะเลื่อนปลายปากกาไป - พารามิเตอร์แรก คือพิกัดแนวนอน และพารามิเตอร์ที่สองคือพิกัดแนวตั้ง จุดเริ่มต้นของพิกัดคือจุด 0, 0 ซึ่งคือมุมบนซ้ายขององค์ประกอบ

เมื่อปากกาเลื่อนไปยังจุดที่ต้องการ - เมธอด moveTo ก็เพียงแค่เลื่อน ในขณะที่ lineTo ในระหว่างการเลื่อนจะวาด เส้นจากตำแหน่งปัจจุบันของปากกาจนถึงจุด ที่มันจะเลื่อนไป

อย่างไรก็ตาม หากรันโค้ดด้านบน - จะไม่มีอะไรเกิดขึ้น: จำเป็นต้องเขียน คำสั่งเพิ่มอีกสองคำสั่ง: คำสั่งแรก beginPath ควรระบุก่อนเริ่มวาดเส้น และคำสั่งที่สอง stroke ควร ถูกเรียกหลังจากชุดคำสั่ง moveTo และ lineTo ทั้งหมด เพื่อให้เส้นปรากฏขึ้น

ดังนั้น มาลองเขียนโค้ดที่ใช้งานได้สำหรับการวาดเส้น:

มาวาดเส้นกัน

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(150, 50); ctx.stroke();

:

มาวาดนกน้อยกัน

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(100, 100); ctx.lineTo(150, 50); ctx.stroke();

:

มาวาดรูปสามเหลี่ยมกัน

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(100, 100); ctx.lineTo(150, 50); ctx.lineTo(50, 50); ctx.stroke();

:

มาวาดรูปสี่เหลี่ยมจัตุรัสกัน

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(150, 50); ctx.lineTo(150, 150); ctx.lineTo(50, 150); ctx.closePath(); ctx.stroke();

:

การปิดรูปทรง

สำหรับการวาดรูปทรงปิด ไม่จำเป็นต้อง วาดเส้นทั้งหมด - เส้นสุดท้ายสามารถ วาดขึ้นโดยอัตโนมัติและปิดรูปทรงได้ สำหรับการทำเช่นนี้ ก่อนเมธอด stroke ควร เรียกเมธอด closePath

เมธอดนี้พยายามปิดรูปทรงโดยการวาด เส้นตรงจากจุดสิ้นสุดไปยังจุดเริ่มต้น หากรูปทรงถูกปิดแล้วหรือเป็นเพียงแค่จุด เมธอดนี้จะไม่ทำอะไร

มาลองวาดสามเหลี่ยมโดยใช้ closePath:

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(100, 100); ctx.lineTo(150, 50); //ctx.lineTo(50, 50); - ข้ามขั้นตอนนี้ ctx.closePath(); ctx.stroke();

:

การเติมสีรูปทรง

แทนที่เมธอด stroke สามารถใช้ เมธอด fill ได้ - ในกรณีนี้รูปทรงไม่จำเป็น ต้องถูกปิดสนิท - มันจะถูกเติมสี ได้เช่นกัน:

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(100, 100); ctx.lineTo(150, 50); //ctx.lineTo(50, 50); - ข้ามขั้นตอนนี้ //ctx.closePath(); - และขั้นตอนนี้ด้วย ctx.fill();

:

โจทย์ปฏิบัติ

ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ