Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การตรวจจับการชนกันของวงกลม HTML5 Canvas


ถ้าเราต้องการตรวจสอบว่าวงกลมชนกันหรือไม่ วิธีหนึ่งคือหาระยะห่างระหว่างจุดศูนย์กลางของวงกลมสองวงแล้วลบรัศมีของแต่ละวงกลมออกจากระยะทางนั้น

เรายังตรวจสอบด้วยว่าระยะทางมากกว่า 1 หรือไม่ ถ้าเราต้องการตรวจสอบ 20 วงกลม เราต้องคำนวณความแตกต่างที่แน่นอนในระยะทาง ตำแหน่ง x/y ของจุดศูนย์กลางเทียบกับรัศมี

bs(x2 - x1) > (r2 + r1)
abs(y2 - y1) > (r2 + r1)

วงกลมไม่สามารถชนกันได้หากระยะทางใน X หรือ Y ระหว่างจุดศูนย์กลางวงกลมมากกว่าผลรวมของรัศมี