ผลต่างระหว่างรุ่นของ "ขั้นตอนวิธีแบบห่อของขวัญ"

เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
จัดหมวดหมู่
Nullzerobot (คุย | ส่วนร่วม)
เก็บกวาด
บรรทัด 5:
 
== ขั้นตอนวิธี ==
[[Imageไฟล์:Jarvis march convex hull algorithm diagram.svg|thumb|280px|right|การใช้ขั้นตอนวิธีการห่อของขวัญในการหาคอนเวกซ์ฮัลล์]]
 
เริ่มจากให้ i = 0 และให้ p0 คือจุดสุดขีดจุดหนึ่ง ซึ่งทราบแน่นอนว่าอยู่บนคอนเวกซ์ฮัลล์ เช่น จุดบนสุด จากนั้น เลือกจุด pi+1 โดย pi+1 คือจุดที่ให้มุมกว้างที่สุดเทียบกับ Pi (อาจเป็นทิศทวนเข็มนาฬิกาหรือตามเข็มนาฬิกาก็ได้) ทำซ้ำเช่นนี้ไปเรื่อยๆ จนกว่าจะได้ ph = p0 คือวนกลับมาจนครบจุดเริ่มต้นนั่นเอง ([http://www.cs.princeton.edu/courses/archive/spr10/cos226/demo/ah/JarvisMarch.html ])
บรรทัด 20:
if (pointOnHull.angle(S[j]) > pointOnHull.angle(endpoint))
endpoint = S[j] ''// ถ้าหากมุมของจุดใหม่กว้างกว่าเทียบกับจุดเดิมที่เลือกไปในรอบก่อน ให้เปลี่ยนจุดที่เลือกใหม่''
i = i+1
pointOnHull = endpoint ''// ตั้งค่าจุด pi+1 ให้เป็นจุดหลักสำหรับรอบหน้า''
until endpoint == P[0] ''// ทำซ้ำจนกว่าจะครบรอบ''
บรรทัด 30:
โดยปกติแล้ว การเดินแถวของจาร์วิสนั้นจะสามารถทำงานได้เร็วกว่า[[เกรแฮมสแกน]] โดยกรณีที่เลวที่สุดคือกรณีที่ทุกจุดอยู่บนคอนเวกซ์ฮัลล์ เช่น รูปวงกลม
 
== อ้างอิง ==
{{เริ่มอ้างอิง}}