ตกลงสำหรับจุดในรูปหลายเหลี่ยมเท่านั้น:
ฉันคิดว่าปัญหานี้เกิดจาก "เศษส่วน" ของวัตถุ 2 มิติและการกระจายข้อมูลเชิงพื้นที่ที่ไม่แน่นอนและไม่สมดุล หากคุณมีกริดปกติคุณสามารถคำนวณตำแหน่งหรือความสัมพันธ์ของเซลล์ได้อย่างง่ายดาย แต่ตัวแยกของแบบจำลองภูมิประเทศอาจมีส่วนที่ไม่ซับซ้อนอยู่ด้านข้างและชิ้นส่วนที่ซับซ้อนทางคณิตศาสตร์ในอีกด้านหนึ่ง (ชิ้นส่วนที่ใช้งานได้ทางสัณฐานวิทยา lke สันเขาหุบเขา ... )
การจัดทำดัชนีพยายามจัดการสองสิ่ง:
รูทีนที่รวดเร็วที่ให้ถังตั้งที่คุณเก็บรวบรวมวัตถุที่คุณสามารถทำให้แตกเป็นชิ้นเล็ก ๆ ได้ (ถัง!) และ BBoxes นั้นง่ายต่อการคำนวณและจัดการ
ชุดของความสัมพันธ์ (ทับซ้อน, แตะ) เพื่อแยกแยะหรือเชื่อมโยงข้อมูลเชิงพื้นที่ (วัตถุ)
BBoxes โชคไม่ดีที่จะบอกให้คุณรู้ว่ามีกี่จุดใน BBox แต่ละจุดรูปร่างของวัตถุ (หลุมนูน ... ) และวิธีการกระจายข้อมูลในพื้นที่ (90% ของคะแนนที่มุมซ้ายบนของ BBox) ดังนั้นคุณอาจพบสมาชิกการดำเนินการอย่างรวดเร็วในระดับวัตถุและหลวมหลายครั้งในการสร้างความสัมพันธ์ของการทดสอบ
ในการใช้วิธีการที่ผิดปกติยิ่งขึ้นการหาสมของ IMO ร่วมกับและควอดทรีนั้นเป็นเรื่องของกลยุทธ์ที่คุณสามารถนำบัคกิ้งและส่วนสร้างความสัมพันธ์ของดัชนีเข้าด้วยกัน (bucketing == การสร้างความสัมพันธ์)
สำหรับตัวอย่างจุดทดสอบรูปหลายเหลี่ยมเป็นไปได้ที่จะสร้างแคชที่ไม่สม่ำเสมอโดยใช้:
- ! delaunay triangulation แบบ จำกัด ของฝาปิดโพลีของคุณพร้อมด้วยจุดตาข่ายเพิ่มเติมสำหรับการตรวจจับฝาครอบด้านนอก
- ใส่สิ่งนี้ลงในรูปแบบการจัดทำดัชนีแบบควอดทรีที่มีไม่เกิน N สามเหลี่ยมต่อกล่อง (ถังเศษส่วน)
- ค้นหาชุดรูปสามเหลี่ยมซึ่งจุดเป็นของ - ใบไม้ในรูปสี่เหลี่ยม
- หาสามเหลี่ยมที่จุดนั้นอยู่ (ส่วนทดสอบเกินสามเหลี่ยม N สูงสุด)
- และขอรหัสรูปหลายเหลี่ยมของจุดยอดสามเหลี่ยม
- ถ้า ID นั้นไม่ซ้ำกันจุดนั้นจะเป็นของรูปหลายเหลี่ยมถ้าไม่ใช่มันจะอยู่นอก
ต้นทุนในการสร้างดีบุกและควอดทรีนั้นสูงมากและยากต่อการคำนวณและควอดทรีต้องทรงตัวสามเหลี่ยมขนาดใหญ่และเล็ก (สามเหลี่ยมที่ไม่พอดีกับกล่องทรีย่อยขนาดเล็ก)
เครื่องมือและลิงค์:
สามเหลี่ยม - การหาสามเหลี่ยมหลายเหลี่ยมแบบ จำกัด
Quadtrees - พร้อมด้วยตัวอย่างแหล่งที่มา
พื้นที่เก็บข้อมูล Stony Brook - โครงสร้างข้อมูลและเรขาคณิตแบบแยกส่วน