เพิ่มเครดิตให้กับงานอดิเรกของ Calvin ที่ผลักดันแนวคิดท้าทายของฉันในทิศทางที่ถูกต้อง
พิจารณาชุดของคะแนนในระนาบซึ่งเราจะเรียกไซต์และเชื่อมโยงสีกับแต่ละไซต์ ตอนนี้คุณสามารถทาสีระนาบทั้งหมดโดยการระบายสีแต่ละจุดด้วยสีของไซต์ที่ใกล้เคียงที่สุด สิ่งนี้เรียกว่าแผนที่ Voronoi (หรือแผนภาพ Voronoi ) โดยหลักการแล้วแผนที่ Voronoi สามารถกำหนดได้สำหรับการวัดระยะทางใด ๆ แต่เราจะใช้ระยะทางแบบยุคลิดแบบr = √(x² + y²)
ธรรมดา ( หมายเหตุ:คุณไม่จำเป็นต้องรู้วิธีคำนวณและแสดงผลหนึ่งในสิ่งเหล่านี้เพื่อแข่งขันในการท้าทายนี้)
นี่คือตัวอย่างจาก 100 เว็บไซต์:
หากคุณดูที่เซลล์ใด ๆ คะแนนทั้งหมดในเซลล์นั้นจะอยู่ใกล้กับไซต์ที่เกี่ยวข้องมากกว่าไซต์อื่น ๆ
งานของคุณคือประมาณภาพที่กำหนดด้วยแผนที่ Voronoi คุณได้รับภาพในรูปแบบใด ๆ ที่สะดวกแรสเตอร์กราฟิกเช่นเดียวกับจำนวนเต็มN จากนั้นคุณควรสร้างเว็บไซต์ไม่เกินNแห่งและสีของแต่ละไซต์เช่นแผนที่ Voronoi ที่อิงจากเว็บไซต์เหล่านี้มีลักษณะคล้ายกับภาพที่นำเข้ามากที่สุด
คุณสามารถใช้กองย่อยตัวอย่างที่ด้านล่างของความท้าทายนี้เพื่อแสดงแผนที่ Voronoi จากผลลัพธ์ของคุณหรือคุณสามารถสร้างมันเองถ้าคุณต้องการ
คุณอาจใช้ฟังก์ชันในตัวหรือบุคคลที่สามเพื่อคำนวณแผนที่ Voronoi จากชุดของไซต์ (ถ้าคุณต้องการ)
นี่คือการประกวดความนิยมดังนั้นคำตอบที่ได้คะแนนโหวตมากที่สุดจะเป็นฝ่ายชนะ ผู้มีสิทธิเลือกตั้งได้รับการสนับสนุนให้ตัดสินคำตอบด้วย
- ภาพต้นฉบับและสีของภาพนั้นดีแค่ไหน
- อัลกอริทึมทำงานได้ดีกับรูปภาพประเภทต่างๆอย่างไร
- วิธีการที่ดีขั้นตอนวิธีการทำงานสำหรับธุรกิจขนาดเล็กN
- อัลกอริทึมจะปรับกลุ่มจุดในภาพที่ต้องการรายละเอียดเพิ่มเติมหรือไม่
ทดสอบภาพ
ต่อไปนี้เป็นภาพสองสามภาพเพื่อทดสอบอัลกอริทึมของคุณ คลิกที่ภาพเพื่อดูขนาดใหญ่ขึ้น
ชายหาดในแถวแรกถูกดึงดูดโดยOlivia Bellและรวมกับการอนุญาตของเธอ
หากคุณต้องการความท้าทายเป็นพิเศษลองYoshi ด้วยพื้นหลังสีขาวและทำให้หน้าท้องของเขาถูกต้อง
คุณสามารถค้นหาภาพทดสอบเหล่านี้ทั้งหมดในแกลเลอรี่ imgur นี้ซึ่งคุณสามารถดาวน์โหลดได้ทั้งหมดเป็นไฟล์ซิป อัลบั้มยังมีแผนภาพ Voronoi แบบสุ่มเป็นการทดสอบอื่น สำหรับการอ้างอิงนี่คือข้อมูลที่สร้างมัน
โปรดใส่ไดอะแกรมตัวอย่างสำหรับรูปภาพที่แตกต่างกันและNเช่น 100, 300, 1,000, 3000 (รวมถึง Pastebins สำหรับข้อมูลจำเพาะของเซลล์ที่เกี่ยวข้องบางส่วน) คุณอาจใช้หรือไม่ใช้ขอบดำระหว่างเซลล์ตามที่เห็นสมควร อย่ารวมเว็บไซต์ (ยกเว้นในตัวอย่างที่แยกต่างหากบางทีหากคุณต้องการอธิบายวิธีการจัดวางเว็บไซต์ของคุณ)
หากคุณต้องการแสดงผลลัพธ์จำนวนมากคุณสามารถสร้างแกลเลอรี่ได้ที่imgur.comเพื่อให้ขนาดของคำตอบมีความสมเหตุสมผล อีกวิธีหนึ่งคือใส่รูปขนาดย่อในโพสต์ของคุณและทำให้พวกเขาเชื่อมโยงไปยังรูปภาพขนาดใหญ่ที่สุดเช่นผมในคำตอบของการอ้างอิงของฉัน คุณสามารถรับรูปขนาดย่อขนาดเล็กได้โดยต่อท้ายs
ชื่อไฟล์ในลิงค์ imgur.com (เช่นI3XrT.png
-> I3XrTs.png
) นอกจากนี้อย่าลังเลที่จะใช้ภาพทดสอบอื่น ๆ หากคุณพบสิ่งที่ดี
renderer
วางผลลัพธ์ของคุณในส่วนย่อยต่อไปนี้เพื่อแสดงผลลัพธ์ของคุณ รูปแบบรายการที่แน่นอนไม่เกี่ยวข้องตราบใดที่แต่ละเซลล์จะถูกระบุโดยหมายเลข 5 จุดที่ลอยอยู่ในการสั่งซื้อx y r g b
ที่x
และy
พิกัดของเว็บไซต์ของเซลล์และr g b
เป็นสีแดง, 0 ≤ r, g, b ≤ 1
สีเขียวและสีฟ้าสีช่องในช่วง
ตัวอย่างมีตัวเลือกเพื่อระบุความกว้างบรรทัดของขอบเซลล์และควรแสดงเว็บไซต์เซลล์หรือไม่ (หลังส่วนใหญ่ใช้สำหรับการดีบัก) แต่โปรดทราบว่าเอาต์พุตจะแสดงผลซ้ำก็ต่อเมื่อข้อกำหนดคุณสมบัติของเซลล์เปลี่ยนไป - ดังนั้นหากคุณแก้ไขตัวเลือกอื่นให้เพิ่มช่องว่างในเซลล์หรือบางสิ่ง
สินเชื่อขนาดใหญ่เรย์มอนด์ฮิลล์สำหรับการเขียนห้องสมุด JS Voronoi นี้ดีจริงๆ