← กลับไปยังบทความทั้งหมด

กับดักวงโคจร เทคนิคการลงสีภาพแฟร็กทัล

สรุปใจความสำคัญ

  • กับดักวงโคจรเป็นเทคนิคการลงสีแฟร็กทัลที่ใช้ระยะห่างระหว่างจุดในวงโคจรกับรูปทรงเรขาคณิต
  • รูปทรงกับดักสามารถเป็นได้ทั้งจุด เส้นตรง วงกลม หรือแม้แต่ภาพราสเตอร์
  • แตกต่างจากอัลกอริทึม Escape Time ที่เน้นจำนวนรอบการทำซ้ำ แต่ Orbit Trap เน้นระยะห่างที่ใกล้ที่สุดที่จุดเข้าใกล้กับดัก

ในทางคณิตศาสตร์ กับดักวงโคจร (Orbit Trap) คือวิธีการลงสีภาพแฟร็กทัล (Fractal) โดยพิจารณาจากระยะห่างที่จุดในวงโคจรของฟังก์ชันทำซ้ำ (Iterative Function) เข้าใกล้รูปทรงเรขาคณิตที่กำหนด ซึ่งรูปทรงนี้จะถูกเรียกว่า "กับดัก" (Trap)

โดยทั่วไปแล้ว กับดักวงโคจรจะถูกนำมาใช้เพื่อลงสีแฟร็กทัลสองมิติที่แสดงผลบนระนาบจำนวนเชิงซ้อน รูปทรงที่นำมาใช้เป็นกับดักมีหลากหลาย ตั้งแต่จุด เส้นตรง วงกลม รูปทรงดอกไม้ หรือแม้แต่การใช้ภาพราสเตอร์ (Raster images) เพื่อสร้างลวดลายที่ซับซ้อน

ตัวอย่างภาพแฟร็กทัลที่สร้างด้วยเทคนิคกับดักวงโคจร
ตัวอย่างการใช้กับดักวงโคจรเพื่อสร้างลวดลายและสีสันในภาพแฟร็กทัล

ประเภทของกับดักวงโคจร

การเลือกรูปทรงของกับดักจะส่งผลโดยตรงต่อลักษณะของลวดลายที่ปรากฏในภาพ ดังนี้:

  • แบบจุด (Point-based): เป็นการลงสีโดยคำนวณว่าวงโคจรของฟังก์ชันเข้าใกล้จุดที่กำหนดจุดหนึ่งมากเพียงใด ซึ่งโดยส่วนใหญ่มักใช้จุดกำเนิด (Origin) เป็นจุดกับดัก
  • แบบเส้น (Line-based): เป็นการลงสีตามระยะห่างที่วงโคจรเข้าใกล้เส้นตรงหนึ่งเส้นหรือหลายเส้น เช่น เส้นแนวตั้ง (x=a) หรือเส้นแนวนอน (y=a) ตัวอย่างที่ชัดเจนของเทคนิคนี้คือ Pickover stalks ซึ่งใช้เส้นตรงสองเส้นในการสร้างลวดลาย
ภาพเคลื่อนไหวแสดงการเปลี่ยนแปลงของกับดักวงโคจร
การเปลี่ยนแปลงของสีและลวดลายเมื่อพารามิเตอร์ของกับดักวงโคจรเปลี่ยนไป

อัลกอริทึมและการทำงาน

กับดักวงโคจรถูกนำมาใช้กับแฟร็กทัลสองมิติที่สร้างจากฟังก์ชันทำซ้ำ โดยโปรแกรมจะคำนวณสีของแต่ละพิกเซล (ซึ่งแทนจุดในระนาบจำนวนเชิงซ้อน) ตามพฤติกรรมของจุดนั้นเมื่อผ่านฟังก์ชันซ้ำกันตามจำนวนครั้งที่กำหนด

ตัวอย่างที่รู้จักกันดีที่สุดคือ เซตแมนเดลโบรต (Mandelbrot set) ซึ่งใช้ฟังก์ชัน $z_{n+1} = z_n^2 + c$ โดยปกติแล้ว การลงสีเซตแมนเดลโบรตมักใช้ อัลกอริทึมเวลาการหลุดพ้น (Escape time algorithm) ซึ่งจะกำหนดสีตามจำนวนรอบที่จุดนั้นมีค่าเกินค่าขอบเขต (Bailout value) ที่กำหนดไว้

ความแตกต่างระหว่าง Escape Time และ Orbit Trap

ในขณะที่ Escape Time สนใจเพียงว่าจุดนั้น "หลุดออกไป" เมื่อใด แต่ Orbit Trap จะสนใจว่า "ระหว่างทางที่หลุดออกไป จุดนั้นเข้าใกล้กับดักมากที่สุดแค่ไหน"

กระบวนการทำงานของโปรแกรมที่ใช้กับดักวงโคจรแบบจุด มีขั้นตอนดังนี้:

  1. กำหนดตัวแปร "ระยะห่าง" (Distance) ให้กับแต่ละพิกเซล โดยเริ่มต้นจะมีค่าสูงมาก
  2. ในทุกรอบของการทำซ้ำฟังก์ชัน โปรแกรมจะคำนวณระยะห่างระหว่างจุดปัจจุบันในวงโคจรกับจุดกับดัก
  3. หากระยะห่างในรอบปัจจุบันน้อยกว่าค่าระยะห่างที่บันทึกไว้ โปรแกรมจะอัปเดตค่าระยะห่างให้เป็นค่าที่น้อยที่สุดที่พบในระหว่างการทำซ้ำทั้งหมด
  4. เมื่อสิ้นสุดการทำซ้ำหรือจุดหลุดพ้นขอบเขต โปรแกรมจะนำค่าระยะห่างที่น้อยที่สุดนี้ไปกำหนดเป็นสีของพิกเซลนั้นๆ

คำถามที่พบบ่อย

กับดักวงโคจร (Orbit Trap) คืออะไร?

คือวิธีการลงสีภาพแฟร็กทัลโดยใช้ระยะห่างที่จุดในวงโคจรของฟังก์ชันทำซ้ำเข้าใกล้รูปทรงเรขาคณิตที่กำหนด (เรียกว่า กับดัก) เพื่อสร้างลวดลายและสีสัน

ความแตกต่างระหว่าง Orbit Trap และ Escape Time คืออะไร?

Escape Time จะลงสีตามจำนวนรอบที่จุดนั้นหลุดออกจากขอบเขตที่กำหนด ส่วน Orbit Trap จะลงสีตามระยะห่างที่ใกล้ที่สุดที่จุดในวงโคจรเคยเข้าใกล้รูปทรงกับดักในช่วงเวลาการทำซ้ำ

รูปทรงของกับดักส่งผลต่อภาพอย่างไร?

รูปทรงของกับดักจะกำหนดลักษณะของลวดลายในภาพ เช่น กับดักแบบจุดจะสร้างลวดลายที่กระจายตัวรอบจุดนั้น ส่วนกับดักแบบเส้นจะสร้างลวดลายที่เป็นเส้นสายหรือโครงสร้างคล้ายก้าน (Stalks)