โปรแกรมเมอร์กราฟิกจะจัดการกับการแสดงจุดยอดที่ไม่เปลี่ยนภาพได้อย่างไร


10

ดังนั้นชื่อค่อนข้างอึดอัดใจ ฉันจะให้พื้นหลังแล้วถามคำถามของฉัน

ความเป็นมา : ฉันทำงานเป็นนักพัฒนาแอปพลิเคชั่นเว็บGISแต่ในเวลาว่างฉันเล่นกับการเรนเดอร์แผนที่และปรับปรุงรูปแบบการแลกเปลี่ยนข้อมูล ฉันทำงานในพื้นที่ 2D เท่านั้น

ปัญหาที่น่าสนใจอย่างหนึ่งที่ฉันได้พบก็คือเมื่อคุณแสดงรูปหลายเหลี่ยมในขนาดเล็ก (ซูมออก) จุดยอดเยี่ยมจำนวนมากซ้ำซ้อนกัน กรณีที่รุนแรงคือคุณมีรูปหลายเหลี่ยมที่มี 500,000 จุดยอดที่ใช้พิกเซลเดียวเท่านั้น หากคุณกำลังส่งข้อมูลนี้ไปยังเบราว์เซอร์มันจะเป็นการไม่เหมาะสมที่จะละเว้นจุดยอดเหล่านั้น ~ 499,999 วิธีหนึ่งที่เราสามารถทำได้คือการแสดงภาพบนเซิร์ฟเวอร์และส่งเป็น PNG: voila มันเป็นประเด็น อย่างไรก็ตามบางครั้งเราต้องการข้อมูลที่ส่งไปยังเบราว์เซอร์ซึ่งสามารถแสดงผลด้วย SVG (หรือแคนวาสหรือผ้าใบหรือ webgl) เพื่อให้สามารถโต้ตอบได้

ปัญหา : ปรากฎว่าการใช้ชุดข้อมูลทางภูมิศาสตร์สมัยใหม่มันง่ายเกินความสามารถในการแสดงผลของ SVG ในความพยายามที่จะรับมือกับข้อ จำกัด เหล่านั้นฉันพยายามที่จะหาวิธีลดขนาดข้อมูลที่ตั้งไว้ตามขนาดและขอบเขตของแผนที่ (และถ้าจำเป็นสำหรับความกว้างและความสูงของพิกเซลแผนที่ที่ทราบ)

ฉันลดขนาดข้อมูลลงอย่างมากเพียงแค่ใช้อัลกอริทึม Douglas-Peuckerและฉันเชื่อว่าฉันสามารถทำให้รูปหลายเหลี่ยมเป็นจริงได้ภายในหนึ่งพิกเซล แต่น่าเสียดายที่ Douglas-Peucker ไม่รักษาโทโพโลยีดังนั้นจึงเปลี่ยนวิธีการแสดงเส้นขอบระหว่างรูปหลายเหลี่ยม ฉันไม่สามารถหาอัลกอริทึมอื่น ๆ เพื่อทดลองและปรับให้เข้ากับวัตถุประสงค์ได้อย่างง่ายดาย แต่ฉันมีพื้นหลัง CS / อัลกอริทึมไม่มากและอาจจำไม่ได้ถ้าฉันเห็นพวกเขา


1
Google สำหรับ "Topologically Consolas Douglas-Peucker" และคุณจะพบลิงก์ไปยังบทคัดย่อของบทความบางบทความ น่าเสียดายที่คุณต้องจ่ายค่าบทความเต็มที่ฉันเห็น
Doc Brown

@DocBrown ขอบคุณ! Questiaยังดูเหมือนว่าจะมีการทดลองใช้ฟรี
canisrufus

คำตอบ:


3

2d level of detail algorithmsสิ่งที่คุณกำลังมองหาอยู่

มีเอกสารมากมายเกี่ยวกับสิ่งนี้ใน google หากคุณค้นหาคำที่ไฮไลต์เหล่านั้น

คำถามเกี่ยวกับ stackoverflow มีข้อมูลที่คุณต้องการในการเรนเดอร์ระดับ 2D แบบละเอียด


+1 สำหรับคำศัพท์ที่เกี่ยวข้องมาก ดูเหมือนว่าฉันใช้วิธีการระดับรายละเอียดจริง ๆ แต่ต้องการอัลกอริทึมการทำให้เป็นรูปหลายเหลี่ยมที่เหมาะสมกับความต้องการของฉัน พบภาพรวมที่เรียบร้อยสำหรับภาพ 3 มิติ ฉันเชื่อว่าฉันใช้กลยุทธ์การทำให้เข้าใจง่ายที่เหมาะสมจริง ๆ แล้วแม้ว่าฉันจะไม่มีเวลาเขียนรหัสก็ตาม
canisrufus
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.