ตำแหน่งที่อยู่ใกล้จุดมากที่สุดจะอยู่ในจุดนั้นหรือแตะเป็นวงกลม
ดังนั้นก่อนตรวจสอบจุดจากนั้นหมุนวงกลมใหม่รอบขอบของวงกลมแต่ละวงที่มีอยู่คำนวณระยะทางจากจุดและถ้าคุณทับซ้อนกันในขณะที่คุณไปและติดตามจุดระยะทางขั้นต่ำ หยุดเมื่อคุณสำรวจทุกวงกลม
กล่าวคือ ตรวจสอบทุกจุดบนเส้นสีเขียวรวมทั้งวงกลมสีขาว โดยที่เส้นสีเขียวคือวงกลมที่มีรัศมีของสีแดงบวกกับสีน้ำเงิน
คุณต้องตรวจสอบเส้นสีเขียวทั้งหมดไม่ใช่แค่ทางแยกเพื่อให้ครอบคลุมกรณีขอบเหล่านี้
เห็นได้ชัดว่าขนาดก้าวของการสำรวจเส้นทางของคุณจะมีความสำคัญในแง่ของประสิทธิภาพ แต่เมื่อคุณระบุประสิทธิภาพไม่เป็นปัญหาให้เลือกค่าที่สอดคล้องกับความละเอียดของมูลค่าส่งออกของคุณ คือลอยตัวนานไหม?
คำชี้แจง:
ข้อเสนอแนะของฉันคือการเดรัจฉานบังคับให้คะแนนทุกรอบการทดสอบวงกลมแต่ละวงซ้อนทับกับวงกลมอื่น ๆในแต่ละจุด ไม่มีความฉลาด
หากรูปภาพตัวอย่างนั้นบ่งบอกถึงจำนวนวงกลมและความละเอียดมันก็ไม่น่าจะเป็นปัญหาสำหรับพีซีมาตรฐาน
เรามีรัศมีเฉลี่ย 20 วงกลม 200 ค่านั่นคือประมาณ 20 * 2 π * 200 คะแนน * 20 การทดสอบทางแยก = 4800000 ซ้ำ
บันทึก:
วิธีการวนซ้ำเช่นนี้มีข้อบกพร่องในขนาดขั้นตอนของคุณซึ่งในกรณีนี้ความละเอียดของเอาต์พุตของคุณอาจส่งผลกระทบอย่างมากต่อผลลัพธ์
สมมติว่าฉันมีวงกลมสีแดงสองวงแยกออกจากกัน 2 พิกเซลและวงกลมสีน้ำเงินรัศมี 1 พิกเซลเพื่อบีบระหว่างทั้งสอง ชัดเจนด้วยสองพิกเซลใดจุดหนึ่งในศูนย์กลางของวงกลมสีน้ำเงินมันจะซ้อนทับหนึ่งในสีแดง แต่เห็นได้ชัดว่ามีที่ว่างสำหรับวงกลมหากจุดศูนย์กลางอยู่ระหว่างพิกเซลทั้งสอง
ดังนั้นความคิดเห็นของฉันถามเกี่ยวกับความละเอียดของผลลัพธ์ ซึ่งคุณบอกว่าอาจเป็นอะไรก็ได้
คุณยังสามารถแก้สมการพร้อมกันสำหรับวงกลมแต่ละคู่ด้วยรัศมีที่เพิ่มขึ้นตามรัศมีของวงกลมสีน้ำเงิน
สิ่งนี้จะช่วยให้คุณทราบจุดที่วงกลมสีน้ำเงินจะสัมผัสทั้งสองวงกลมสีแดงแม่นยำกว่าการวนซ้ำ
อย่างไรก็ตาม มีหลายเงื่อนไขหากคุณทำเช่นนี้คุณจะได้รับคำตอบที่ผิดหรือไม่มีเลย กล่าวคือ
1 หรือไม่มีแวดวง
วงกลม 2 วงขึ้นไป แต่มีจุดเป้าหมายอยู่ไกลและอยู่นอกวงกลม
วงกลมหลายวง แต่มีจุดเป้าหมายอยู่ใกล้กับพื้นผิว