ผลต่างระหว่างรุ่นของ "ขั้นตอนวิธีแบบห่อของขวัญ"
เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
ล จัดหมวดหมู่ |
Nullzerobot (คุย | ส่วนร่วม) ล เก็บกวาด |
||
บรรทัด 5:
== ขั้นตอนวิธี ==
[[
เริ่มจากให้ 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:
โดยปกติแล้ว การเดินแถวของจาร์วิสนั้นจะสามารถทำงานได้เร็วกว่า[[เกรแฮมสแกน]] โดยกรณีที่เลวที่สุดคือกรณีที่ทุกจุดอยู่บนคอนเวกซ์ฮัลล์ เช่น รูปวงกลม
== อ้างอิง ==
{{เริ่มอ้างอิง}}
|