SVG <path>

  • เป็นไปไม่ได้ง่ายเลยครับ!!! เนื่องจากเส้นทางวาดเป็นสิ่งที่ซับซ้อนมาก จึงแนะนำให้ใช้เครื่องประกอบ SVG เพื่อสร้างกราฟิกส์ที่ซับซ้อน หน้าก่อนหน้า
  • หน้าต่อไป ข้อความ SVG

SVG ทางเส้น - <path>

<path> เป็นตัวแบบสำหรับการกำหนดทางเส้น

คำสั่งดังกล่าวสามารถใช้สำหรับข้อมูลทางเส้นทาง

  • M = moveto (ย้ายตำแหน่ง)
  • L = lineto (วาดเส้นตรง)
  • H = horizontal lineto (เส้นตรงน้ำเข้น)
  • V = vertical lineto (เส้นตรงตั้งฐาน)
  • C = curveto (เส้นโค้งทรง)
  • S = smooth curveto (เส้นโค้งทรงสมบูรณ์)
  • Q = quadratic Bézier curve (เส้นโค้งทรงสองเชื่อม)
  • T = smooth quadratic Bézier curveto (เส้นโค้งทรงสมบูรณ์สองเชื่อม)
  • A = elliptical Arc (เส้นโค้งทรงหรือวงกลม)
  • Z = closepath (ปิดทางเส้น)

หมายเหตุ: ทั้งหมดคำสั่งดังกล่าวก็สามารถใช้ตัวอักษรเล็กได้ด้วย ตัวอักษรใหญ่หมายถึงการตั้งตำแหน่งอัตรานั้น ตัวอักษรเล็กหมายถึงการตั้งตำแหน่งเรlativ

ตัวอย่าง 1

ตัวอย่างด้านล่างนี้นิยามทางเส้นทางหนึ่ง จุดเริ่มต้นที่ 150,0 แล้ววาดเส้นไปที่จุด 75,200 จากนั้นวาดเส้นไปที่จุด 225,200 แล้วปิดทางเส้นกลับมาที่ 150,0

นี่คือรหัส SVG:

<svg height="210" width="400">
  <path d="M150 0 L75 200 L225 200 Z" />
</svg>

แสดงความชื่นชม

ตัวอย่าง 2

เบซีเออร์ความยาว (Bézier curves) ใช้สำหรับตัวแบบรูปทรงที่สามารถย่อยาวได้ไม่จำกัด โดยทั่วไป ผู้ใช้จะเลือกจุดจบทั้งสองจุดและจุดควบคุมหนึ่งหรือสองจุด ทางเบซีเออร์ที่มีจุดควบคุมหนึ่งเรียกว่าเบซีเออร์ความยาวสองเชื่อม (quadratic Bézier curve) และทางเบซีเออร์ที่มีจุดควบคุมสองเรียกว่าเบซีเออร์ความยาวสาม (cubic)

ตัวอย่างสร้างเส้นโค้งบีเอสเอ ที่ A และ C เป็นจุดเริ่มต้นและจุดสิ้นสุด และ B เป็นจุดควบคุม:

A B C

นี่คือรหัส SVG:

<svg height="400" width="450">
  <path id="lineAB" d="M 100 350 l 150 -300" stroke="red" stroke-width="3" fill="none" />
  <path id="lineBC" d="M 250 50 l 150 300" stroke="red" stroke-width="3" fill="none" />
  <path d="M 175 200 l 150 0" stroke="green" stroke-width="3" fill="none" />
  <path d="M 100 350 q 150 -300 300 0" stroke="blue" stroke-width="5" fill="none" />
  <!-- ทิศทางของจุดที่เกี่ยวข้อง -->
  <g stroke="black" stroke-width="3" fill="black">
    <circle id="pointA" cx="100" cy="350" r="3" />
    <circle id="pointB" cx="250" cy="50" r="3" />
    <circle id="pointC" cx="400" cy="350" r="3" />
  </g>
  <!-- ให้จุดมีขอบเขต -->
  <g font-size="30" font-family="sans-serif" fill="black" stroke="none"
  text-anchor="middle">
    <text x="100" y="350" dx="-30">A</text>
    <text x="250" y="50" dy="-10">B</text>
    <text x="400" y="350" dx="30">C</text>
  </g>
</svg>

แสดงความชื่นชม

ทดลองด้วยตัวเอง

  • เป็นไปไม่ได้ง่ายเลยครับ!!! เนื่องจากเส้นทางวาดเป็นสิ่งที่ซับซ้อนมาก จึงแนะนำให้ใช้เครื่องประกอบ SVG เพื่อสร้างกราฟิกส์ที่ซับซ้อน หน้าก่อนหน้า
  • หน้าต่อไป ข้อความ SVG