สมมติว่าฉันใช้ตัวละครนี้
(แหล่งที่มา: iconbug.com )
คุณจะใช้การตรวจจับการชนกันอย่างไร การใช้กล่องขอบไม่น่าจะเป็นการประมาณที่ดีเพราะรูปร่างของนกอยู่ใกล้กับสี่เหลี่ยม
ฉันคิดว่าจะมีโครงสร้างข้อมูลแบบต้นไม้สี่คี่ภายในวัตถุที่แสดงถึงส่วนต่าง ๆ ของภาพ ใบแต่ละใบอาจเป็นได้ทั้งfalse
(ในกรณีที่มันครอบคลุมพื้นที่สีขาว / โปร่งใสนอกนก) หรือtrue
(ในกรณีที่มันหมายถึงพื้นที่ของนกเช่นจะงอยปากตา ฯลฯ ) จากนั้นก็ทดสอบสิ่งกีดขวางเพียงอย่างเดียวในที่เกิดเหตุเพื่อชนกับนก
แต่ปัญหาของฉันในแนวทางของฉันคือ:
- ฉันไม่ทราบวิธีการเริ่มต้นต้นไม้รูปสี่เหลี่ยม
- เมื่อเริ่มต้นต้นไม้รูปสี่เหลี่ยมแล้วฉันไม่แน่ใจว่าจะสำรวจและใช้งานได้อย่างไรเมื่อมีสิ่งกีดขวางภายในพิกัดของภาพ
คุณจะตรวจจับการชนกันของตัวละครที่ไม่ใช่รูปสี่เหลี่ยมได้อย่างไร?
LE: อีกวิธีที่ฉันเห็นคือใช้กล่องที่มีขอบเขตหลายอัน ตัวอย่างเช่นฉันจะมีหนึ่งหรือสองกล่องที่ถูกผูกไว้สำหรับจะงอยปากแล้วบางส่วนของพวกเขาสำหรับผมหรือหาง แต่มันน่าเบื่อ หากนี่เป็นวิธีการที่ถูกต้องในกรณีของฉันฉันจะสร้างกล่องขอบเหล่านั้นได้อย่างไร ฉันสงสัยว่าฉันต้องให้พวกเขาฮาร์ดโค้ดในโปรแกรมของฉัน
LE2: ฉันสนใจการชนที่แม่นยำพอสมควร ฉันไม่สามารถจินตนาการได้ว่ากล่องหรือวงกลมอย่างน้อยหนึ่งกล่องสามารถประมาณรูปร่างที่เหมาะสมได้อย่างไรดังนั้นวิธีการนี้จะไม่ทำงาน