กลับไปหน้าบทความ

อ่าน 5 นาที

การสร้างสามเหลี่ยมรูปหลายเหลี่ยม

ในเรขาคณิตเชิงคำนวณการสร้างสามเหลี่ยมของรูปหลายเหลี่ยมคือ การแบ่งพื้นที่รูปหลายเหลี่ยม (รูปหลายเหลี่ยมแบบง่าย) P ออกเป็นเซตของสามเหลี่ยม...

การสร้างสามเหลี่ยมรูปหลายเหลี่ยม

การสร้างสามเหลี่ยมรูปหลายเหลี่ยม

ในเรขาคณิตเชิงคำนวณการสร้างสามเหลี่ยมของรูปหลายเหลี่ยมคือ การแบ่งพื้นที่รูปหลายเหลี่ยม (รูปหลายเหลี่ยมแบบง่าย) P ออกเป็นเซตของสามเหลี่ยม [ 1 ]กล่าวคือการหาเซตของสามเหลี่ยมที่มีพื้นที่ภายในที่ไม่ตัดกันเป็นคู่ๆ ซึ่งผลรวม ของสามเหลี่ยมเหล่านั้น คือP

อาจมองการสร้างรูปสามเหลี่ยมเป็นกรณีพิเศษของกราฟเส้นตรงระนาบได้ เมื่อไม่มีรูหรือจุดเพิ่มเติม การสร้างรูปสามเหลี่ยมจะสร้างกราฟ นอกระนาบสูงสุด

การสร้างรูปสามเหลี่ยมจากรูปหลายเหลี่ยมโดยไม่มีจุดยอดเพิ่มเติม

เมื่อเวลาผ่านไป มีการเสนออัลกอริทึมจำนวนมากเพื่อใช้ในการสร้างรูปสามเหลี่ยมจากรูปหลายเหลี่ยม

การสร้างสามเหลี่ยมรูปหลายเหลี่ยมนูน

รูปเจ็ดเหลี่ยมเว้า (รูปหลายเหลี่ยมเว้า 7 ด้าน) สามารถแบ่งออกเป็นรูปสามเหลี่ยมได้ 42 รูป แบบ จำนวนนี้ได้มาจาก เลขคาตาลันลำดับ ที่ 5

การแปลง รูปหลายเหลี่ยมนูน ใดๆ ให้เป็นรูปสามเหลี่ยมแบบพัดนั้นทำได้ง่ายและรวดเร็วโดยการลากเส้นทแยงมุมจากจุดยอดหนึ่งไปยังจุดยอดอื่นๆ ที่ไม่ใช่จุดยอดเพื่อนบ้านที่ใกล้ที่สุด

จำนวนวิธีทั้งหมดในการสร้างรูปสามเหลี่ยมด้านเท่าnด้าน นูน โดยใช้เส้นทแยงมุมที่ไม่ตัดกันคือจำนวนคาตาลันลำดับ ที่ ( n − 2) ซึ่งเท่ากับ

,

สูตรที่ค้นพบโดยเลออนฮาร์ด ออยเลอร์[ 2 ]

วิธีการตัดหู

รูปหลายเหลี่ยมสามเหลี่ยม โดยมีหูข้างหนึ่งถูกแรเงา

วิธีหนึ่งในการสร้างรูปสามเหลี่ยมจากรูปหลายเหลี่ยมอย่างง่ายนั้นอาศัยทฤษฎีสองหูเนื่องจากรูปหลายเหลี่ยมอย่างง่ายใดๆ ที่มีจุดยอดอย่างน้อย 4 จุดโดยไม่มีรูจะมี " หู " อย่างน้อยสองอัน ซึ่งเป็นรูปสามเหลี่ยมที่มีด้านสองด้านเป็นขอบของรูปหลายเหลี่ยมและด้านที่สามอยู่ภายในรูปหลายเหลี่ยมโดยสมบูรณ์[ 3 ]จากนั้นอัลกอริทึมจะประกอบด้วยการค้นหาหูดังกล่าว ลบออกจากรูปหลายเหลี่ยม (ซึ่งส่งผลให้เกิดรูปหลายเหลี่ยมใหม่ที่ยังคงตรงตามเงื่อนไข) และทำซ้ำจนกว่าจะเหลือรูปสามเหลี่ยมเพียงอันเดียว

อัลกอริทึมนี้ง่ายต่อการใช้งาน แต่ช้ากว่าอัลกอริทึมอื่นๆ และใช้งานได้เฉพาะกับรูปหลายเหลี่ยมที่ไม่มีรูเท่านั้น การใช้งานที่เก็บรายการจุดยอดนูนและจุดยอดเว้าแยกกันจะใช้ เวลา O( )วิธีนี้เรียกว่าการตัดหูและบางครั้งเรียก ว่า การเล็มหู อัลกอริทึมที่มีประสิทธิภาพสำหรับการตัดหูถูกค้นพบโดย Hossam ElGindy, Hazel Everett และGodfried Toussaint [ 4 ]

การสร้างสามเหลี่ยมรูปหลายเหลี่ยมแบบโมโนโทน

รูปหลายเหลี่ยมแบบง่ายจะเป็นแบบโมโนโทนเมื่อเทียบกับเส้นตรงLถ้าเส้นตรงใดๆ ที่ตั้งฉากกับLตัดกับรูปหลายเหลี่ยมไม่เกินสองครั้งรูปหลายเหลี่ยมแบบโมโนโทนสามารถแบ่งออกเป็นสองสายโซ่ แบบโมโนโทน ได้ รูปหลายเหลี่ยมที่เป็นแบบโมโนโทนเมื่อเทียบกับแกน y เรียกว่าแบบ y-โมโนโทน รูปหลายเหลี่ยมแบบโมโนโทนที่มี จุดยอด nจุดสามารถสร้างเป็นรูปสามเหลี่ยมได้ใน เวลา O( n )สมมติว่ารูปหลายเหลี่ยมที่กำหนดเป็นแบบ y-โมโนโทนอัลกอริทึมแบบโลภจะเริ่มต้นด้วยการเดินบนสายโซ่หนึ่งของรูปหลายเหลี่ยมจากบนลงล่างในขณะที่เพิ่มเส้นทแยงมุมเมื่อใดก็ตามที่เป็นไปได้[ 1 ]จะเห็นได้ง่ายว่าอัลกอริทึมนี้สามารถนำไปใช้กับรูปหลายเหลี่ยมแบบโมโนโทนใดๆ ก็ได้

รูปหลายเหลี่ยมโมโนโทนสามารถสร้างเป็นรูปสามเหลี่ยมได้ในเวลาเชิงเส้นโดยใช้อัลกอริทึมของA. Fournierและ DY Montuno [ 5 ]หรืออัลกอริทึมของGodfried Toussaint [ 6 ]

การสร้างสามเหลี่ยมจากรูปหลายเหลี่ยมที่ไม่เป็นเอกรูป

การแบ่งรูปหลายเหลี่ยมออกเป็นรูปหลายเหลี่ยมสีเดียว

หากรูปหลายเหลี่ยมไม่ใช่รูปหลายเหลี่ยมเอกรูป สามารถแบ่งออกเป็นรูปหลายเหลี่ยมย่อยเอกรูปได้ในเวลาO( n log n ) โดยใช้ แนวทางกวาดเส้น อัลกอริทึมนี้ไม่จำเป็นต้องให้รูปหลายเหลี่ยมเป็นรูปหลายเหลี่ยมแบบง่าย ดังนั้นจึงสามารถนำไปใช้กับรูปหลายเหลี่ยมที่มีรูได้โดยทั่วไป อัลกอริทึมนี้สามารถสร้างรูปสามเหลี่ยมจากการแบ่งย่อยระนาบที่มี จุดยอด n จุดได้ ในเวลาO( n log n ) โดยใช้ พื้นที่O( n ) [ 1 ]

กราฟคู่ของสามเหลี่ยม

กราฟที่มีประโยชน์อย่างหนึ่งที่มักเกี่ยวข้องกับการแบ่งรูปหลายเหลี่ยมP ออกเป็นรูปสามเหลี่ยม คือกราฟคู่ (dual graph ) เมื่อกำหนดการแบ่งรูปหลายเหลี่ยมP ออกเป็นรูปสามเหลี่ยม T Pแล้วเราจะนิยามกราฟG ( T P )ว่าเป็นกราฟที่มีเซตของจุดยอดเป็นรูปสามเหลี่ยมของT Pโดยที่จุดยอด (รูปสามเหลี่ยม) สองจุดจะอยู่ติดกันก็ต่อเมื่อมีเส้นทแยงมุมร่วมกัน จะเห็นได้ง่ายว่าG ( T P )เป็นต้นไม้ที่มีดีกรีสูงสุด 3

ความซับซ้อนในการคำนวณ

จนกระทั่งปี 1988 การที่รูปหลายเหลี่ยมอย่างง่ายสามารถสร้างเป็นรูปสามเหลี่ยมได้เร็วกว่า เวลา O( n log n )นั้นเป็นปัญหาที่ยังเปิดอยู่ในการคำนวณเรขาคณิต[ 1 ]จากนั้นTarjan & Van Wyk (1988)ได้ค้นพบอัลกอริทึมการสร้างรูปสามเหลี่ยมที่มีเวลาO( n log log n ) [ 7 ]ซึ่งต่อมาได้รับการทำให้ง่ายขึ้นโดยKirkpatrick, Klawe & Tarjan (1992) [ 8 ] มีวิธีการปรับปรุงหลายวิธีที่มีความซับซ้อนO( n log * n ) (ในทางปฏิบัติ แทบจะแยกไม่ออกจากเวลาเชิงเส้น ) ตามมา[ 9 ] [ 10 ] [ 11 ]

เบอร์นาร์ด ชาเซลล์แสดงให้เห็นในปี 1991 ว่ารูปหลายเหลี่ยมแบบง่ายใดๆ ก็สามารถสร้างเป็นรูปสามเหลี่ยมได้ในเวลาเชิงเส้น แม้ว่าอัลกอริทึมที่เสนอจะซับซ้อนมากก็ตาม[ 12 ]นอกจากนี้ยังมีอัลกอริทึมแบบสุ่มที่ง่ายกว่าซึ่งมีเวลาเฉลี่ยเชิงเส้นอีกด้วย[ 13 ]

อัลกอริทึมการแยกส่วนของ Seidel [ 10 ]และวิธีการสร้างสามเหลี่ยมของ Chazelle ได้รับการอธิบายโดยละเอียดในLi & Klette (2011 ) [ 14 ]

ความซับซ้อนเชิงเวลาของการแบ่งรูปสามเหลี่ยมของรูปหลายเหลี่ยมn จุดยอด ที่มีรูนั้นมีขอบเขตล่างΩ( n log n ) ในแบบจำลองต้นไม้การคำนวณ เชิงพีชคณิต [ 1 ]เป็นไปได้ที่จะคำนวณจำนวนการแบ่งรูปสามเหลี่ยมที่แตกต่างกันของรูปหลายเหลี่ยมแบบง่ายในเวลาพหุนามโดยใช้การเขียนโปรแกรมแบบไดนามิกและ (โดยอิงจากอัลกอริทึมการนับนี้) เพื่อสร้าง การแบ่งรูปสามเหลี่ยม แบบสุ่มอย่างสม่ำเสมอในเวลาพหุนาม[ 15 ]อย่างไรก็ตาม การนับการแบ่งรูปสามเหลี่ยมของรูปหลายเหลี่ยมที่มีรูนั้นเป็น ปัญหา #P-completeทำให้ไม่น่าจะสามารถทำได้ในเวลาพหุนาม[ 16 ]

ดูเพิ่มเติม

  • สาธิตในรูปแบบไฟล์ Flash swf โดยใช้อัลกอริทึม Sweep Line
  • คำอธิบายของซงโฮเกี่ยวกับเทสเซลเลเตอร์ GLU ของ OpenGL
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Polygon_triangulation&oldid=1342733990 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การสร้างสามเหลี่ยมรูปหลายเหลี่ยม

ในเรขาคณิตเชิงคำนวณการสร้างสามเหลี่ยมของรูปหลายเหลี่ยมคือ การแบ่งพื้นที่รูปหลายเหลี่ยม (รูปหลายเหลี่ยมแบบง่าย) P ออกเป็นเซตของสามเหลี่ยม...

การสร้างรูปสามเหลี่ยมจากรูปหลายเหลี่ยมโดยไม่มีจุดยอดเพิ่มเติม

เมื่อเวลาผ่านไป มีการเสนออัลกอริทึมจำนวนมากเพื่อใช้ในการสร้างรูปสามเหลี่ยมจากรูปหลายเหลี่ยม

การสร้างสามเหลี่ยมรูปหลายเหลี่ยมนูน

การแปลง รูปหลายเหลี่ยมนูน ใดๆ ให้เป็นรูป สามเหลี่ยม แบบ พัด นั้นทำได้ง่ายและรวดเร็วโดยการลากเส้นทแยงมุมจากจุดยอดหนึ่งไปยังจุดยอดอื่นๆ ที่ไม่ใช่จุดยอดเพื่อนบ้านที่ใกล้ที่สุด

วิธีการตัดหู

วิธีหนึ่งในการสร้างรูปสามเหลี่ยมจาก รูปหลายเหลี่ยมอย่างง่าย นั้นอาศัย ทฤษฎีสองหู เนื่องจากรูปหลายเหลี่ยมอย่างง่ายใดๆ ที่มีจุดยอดอย่างน้อย 4 จุดโดยไม่มีรูจะมี " หู " อย่างน้อยสองอัน...