เมื่อทำการแมปพื้นผิวของทรงกลมด้วยกระเบื้องคุณจะจัดการกับการบิดเบือนขั้วโลกอย่างไร


24

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

ฉันต้องการที่ตั้งจตุรัส (ish?) - สามารถแสดงได้อย่างมีเหตุผลด้วยกระเบื้องสี่เหลี่ยมที่มีขนาดเท่ากันทั่วโลก

นี่จะต้องเป็นปัญหาที่แก้ไขแล้วใช่มั้ย

การแก้ปัญหาคืออะไร?

การทางพิเศษแห่งประเทศไทย:

ที่เส้นศูนย์สูตร - และสมมติว่าสถานที่ตั้งของคุณมีขนาดเล็กพอสมควรมันใกล้พอที่จะเป็นจริงที่คุณสามารถหนีไปได้โดยมีหนึ่งตารางในแถวเหนือและใต้ของแถวเส้นศูนย์สูตรมากที่สุด และคุณอาจหนีไปได้โดยเพียงแค่โบกมือให้ความแตกต่างเป็น 45 องศาหรือมากกว่านั้น แต่ในที่สุดคุณจะต้องมีสี่เหลี่ยมน้อยลงในแถวเส้นรอบวงของผู้คุมขั้วโลก ถ้าฉันลดความยาวของแถวทีละหนึ่งและชดเชยสแควร์สที 1/2 แล้วพวกเขาก็เหมือน hexes และมันค่อนข้างง่ายที่จะทำการเข้ารหัสเพื่อติดตามการเชื่อมต่อ แต่เมื่อคุณได้รับการป้องกันขั้วโลกมันจะรุนแรงขึ้นเรื่อย ๆ

การฉายภาพพื้นผิวโลกบนพื้นผิวของลูกบาศก์กำลังดึงดูด แต่ฉันคิดว่าต้องมีวิธีแก้ปัญหาที่หรูหรากว่าที่ใช้อยู่แล้ว

ถ้าฉันทำสิ่งที่ลูกบาศก์ (ไม่ตัดผ่าน geodesy) มีข้อดีและข้อเสียที่เกี่ยวข้องกับการวางเสาที่กึ่งกลางของใบหน้าหรือที่จุดสุดยอดของทั้งสามด้าน?


1
คุณช่วยอธิบายเกี่ยวกับสิ่งที่คุณหมายถึงโดย "ตาราง (ish)"? squarish เป็น "ตาราง (ish)"?
Steve H

คำตอบ:


3

ฉันคิดว่าคุณกำลังมองหาตารางเนื้อที่ ผู้คนมากมายประมาณโลกด้วยลูกบาศก์:

Most cartographic problems would disappear on a polyhedral Earth

Carlos A. Furuti มีแผนที่โลกมากมายที่พับเป็นก้อน

คุณอาจสนใจในการฉายภาพ The Peirce quincuncialซึ่งแผนที่โลกทั้งโลกไปยังหนึ่งหรือสองสี่เหลี่ยม

icosahedron (แผนที่ Dymaxion; "วิธีที่ดีที่สุดในการทำให้พิกเซลกลมเป็นทรงกลมคืออะไร?" ) ให้ความเพี้ยนน้อยกว่าเล็กน้อย แต่ซับซ้อนกว่ามาก


9

ฉันอยากจะดูเกมที่แผนที่รูปทรงกลมใช้รูปทรงหลายเหลี่ยมปกติของบางประเภทแทนที่จะเล่นโลกบนพรู เทคนิคนี้เรียกว่าแผนที่ Dymaxionข้อความแสดงแทน         
(ที่มา: grunch.net )

ฉันอยากจะแนะนำ ฮอว์คิง ป๋อสามเหลี่ยมปัจจุบันดังนั้นมันจึงอยู่ในแนวเดียวกับขอบสี่เหลี่ยม เมื่อผู้เล่นเลื่อนออกจากสามเหลี่ยมให้ดึงสามเหลี่ยมถัดไปขึ้นมาและแมปอีกครั้งเหมือนกัน พิกัดของผู้เล่นจะถูกแมปใหม่ในส่วนใหม่ ดังนั้นแต่ละส่วนในแผนที่ของคุณจึงมีระบบพิกัดของตัวเอง นอกจากนี้คุณจะต้องวาดพื้นหลังสำหรับส่วนที่อยู่ติดกัน 3 ส่วนและ 9 ส่วนติดกัน ฉันไม่คิดว่าผู้ใช้จะสามารถกำหนดวิธีการใช้งานได้หากทำได้ดี

นี่คือตัวอย่างของการทำงานนี้

แน่นอนหลังจากอ่านนี้คุณอาจใช้แผนที่ torus แบบคลาสสิกและฉันจะรอดูเอกภพ polyhedral จริง


ฉันจะไม่ใช้พรู ฉันสามารถใช้ทรงกระบอกเหมือนเกม Civ ได้ แต่เนื่องจากขาดวิธีการแก้ปัญหาที่ยอดเยี่ยมฉันจึงเอนตัวไปที่ลูกบาศก์อย่างจริงจัง ลูกบาศก์เป็นรูปทรงหลายเหลี่ยม! :)
clweeks

5

หากคุณสร้างทรงกลมโดยใช้ฐานพื้นที่ทางภูมิศาสตร์พื้นที่ขั้วโลกจะได้รับการปฏิบัติไม่แตกต่างจากภูมิภาคอื่น ๆ ในแง่ของระยะห่างของจุดยอดซึ่งช่วยให้การทำแผนที่ยูวีสม่ำเสมอ

แอพการสร้างแบบจำลองส่วนใหญ่อนุญาตให้คุณสร้างรูปทรงกลมแบบดั้งเดิมโดยใช้การออกแบบทางธรณีวิทยา


ปัญหาคือคุณจะได้เพชรแทนที่จะเป็นสี่เหลี่ยมในกรณีนี้และนั่นไม่ใช่สิ่งที่ OP ต้องการ
Kornel Kisielewicz

นอกจากว่าฉันจะพลาดบางสิ่งบางอย่างนั่นไม่ได้ให้ภูมิภาคที่ง่ายต่อการประสานงานและทำแผนที่และลิงค์ ... ใช่ไหม?
clweeks

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

ฉันคิดว่ามีบางรูปร่างเนื้อที่สามารถให้ aproximate กำลังสองถ้าจำเป็นจริง ๆ
speeder

คุณได้เพชรแทนที่จะเป็นสี่เหลี่ยม แต่มันก็ค่อนข้างง่ายที่จะทำการแปลงเพื่อแก้ไขมัน ไม่มีเสารับประกัน
ChrisE

5

ไม่มีวิธี "แมป" ทรงกลมที่มีช่องสี่เหลี่ยม (หรือสี่เหลี่ยม) และให้พวกเขาเข้าร่วมที่จุดยอด "ทั่วไป"

อย่างไรก็ตามเป็นไปได้หรือไม่ที่จะสร้าง "มุมมองท้องถิ่น" ตามต้องการ ปัญหาพื้นที่ไม่ได้ระบุไว้ในคำถาม แต่ถ้าฉันกำลังทำงานในสิ่งที่ฉันต้องการวิวเมือง แต่ต้องการที่จะหมุนโลกฉันอาจเพียงชั่วคราวแผนที่ตารางลงในส่วน "แบนพอ" โลก. จุดกำเนิดของกริดจะเป็นที่ใดก็ตามที่ศูนย์ท้องถิ่นของคุณอยู่และจุดปกติตรงกับพื้นผิวของดาวเคราะห์

จากนั้นเมื่อคนหนึ่งเดินออกจากตารางใหม่จะถูกสร้างขึ้นตามความต้องการ

สิ่งนี้อาจเป็นไปได้หรืออาจใช้ไม่ได้กับ OP แต่อาจจะมีประโยชน์สำหรับบางคน


4

ใช้ลูกบาศก์โดยมีระยะห่างระหว่างจุดยอดและศูนย์กลางของลูกบาศก์เท่ากับรัศมีที่ต้องการ คุณมีทรงกลมที่ทำจาก 6 ควาด

ตอนนี้ในแต่ละขั้นตอนนำทุกรูปสี่เหลี่ยมแบ่งออกเป็น 4 และย้ายจุดยอด 5 ใหม่ (หนึ่งในศูนย์และ 4 บนขอบ - เตือนพวกเขามีการแบ่งปัน) ห่างจากศูนย์เพื่อให้พวกเขาชอบในที่ที่ต้องการ รัศมี.

ไม่ได้วิธีนี้ไม่สมบูรณ์แบบ แต่อย่างน้อยมันก็มีการกระจายตัวเท่ากันมากกว่าในทรงกลม


3
ความผิดเพี้ยนนั้นค่อนข้างรุนแรงกับเรื่องนี้ - คณะสี่คนที่อยู่ตรงกลางใบหน้าจะอยู่ใกล้กับสี่เหลี่ยมจัตุรัส
JasonD

@ JasonD: มันจะยังคงดีกว่าเพชรทั้งหมด แนะนำวิธีแก้ปัญหาที่ผิดเพี้ยนน้อยกว่าถ้าคุณต้องการ downvote
Kornel Kisielewicz

คุณสามารถประมาณทรงกลมได้ค่อนข้างดีกับการแบ่งทางธรณีวิทยา แต่ฉันไม่แน่ใจว่าฉันเห็นว่ามันช่วยฉันได้อย่างไร
clweeks

1

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

คุณไม่จำเป็นต้องทำให้การตกแต่งภายในดูราวกับเคยเกิดแผ่นดินไหวเมื่อเร็ว ๆ นี้เพราะฉันคิดว่าผู้เล่นโดยเฉลี่ยไม่ควรที่จะตบตาพวกเขาเกี่ยวกับการเข้าประตูไปทางตะวันออกเฉียงเหนือ แต่เข้าสู่หน้าจอโดยหันหน้าไปทางประตูหน้าเนื่องจาก ทางทิศใต้และอาคารทั้งหมดในตารางปกติ

แม้ว่าคุณจะเพียงแค่เก็บสิ่งปลูกสร้างและไซต์สำคัญเช่นนั้นคุณก็ทำทุกอย่างให้เป็นรูปแบบลูกฟุตบอลอยู่ดี ผลลัพธ์ที่ได้คือคุณกำลังเก็บโลกเป็นรูปแบบที่ไม่ใช่สี่เหลี่ยมจัตุรัสแล้วบังคับให้มันกลายเป็นกริดเช่นที่ที่ผู้เล่นอยู่

มีอีกทางเลือกหนึ่งคือ - ถ้าคุณไม่ให้พวกมันบ่งบอกถึงทรงกลมอย่างแม่นยำ, เช่นถ้าคุณเพิ่งให้เข็มทิศที่มีความแม่นยำต่ำแก่พวกเขาเพื่อบอกพวกเขาว่าทิศทางสี่มุมฉากใดที่อยู่ใกล้กับทิศเหนือมากที่สุด ด้วยการหมุน 90 องศาสำหรับตำแหน่งที่ผู้เล่นไป เมื่อพิจารณาถึงระดับกราฟิกที่สันนิษฐานว่าคุณไม่ต้องกังวลเกี่ยวกับอาคารสูงที่ปิดบังทางเข้าประตูบางส่วน ตราบใดที่พวกเขารู้ว่าพวกเขาอยู่ใกล้กับเสาหรือไม่พวกเขาก็ไม่ควรกังวลเกี่ยวกับการเปลี่ยนเข็มทิศนอกเสียจากว่าพวก NPC ที่อยู่รอบ ๆ นั้นบอกให้พวกเขาไปทางตะวันออกเฉียงเหนือหรือพวกเขาพยายามไปพิกัดละติจูดและลองจิจูดเฉพาะ .


1

คุณกำลังถามคำถามว่าคนที่สร้างแผนที่ขอมานานแล้วแล้ว :)

ส่วนใหญ่ไปอ่านบนแผนที่ประมาณการเพื่อรับข้อมูลเชิงลึกและแนวคิดที่อาจช่วยได้ ความท้าทายในการแสดงพื้นผิวของทรงกลมบน / ด้วยระนาบ 2D แบนนั้นเป็นสิ่งที่คนคิดกันมานานแล้ว

คำตอบสั้น ๆ คือคุณไม่สามารถทำได้ นั่นเป็นเหตุผลที่เมื่อคุณดูแผนที่ของโลกบางส่วนมีการบิดเบี้ยวและบางส่วนไม่ได้ โดยปกติแล้วจะเป็นเสาเพราะแผนที่ส่วนใหญ่มีพื้นที่ไม่เกี่ยวกับขั้ว

ดังที่คำตอบอื่น ๆ ได้กล่าวไว้คำตอบคือใช้รูปร่างที่แตกต่าง (เช่น hexes หรือ triangles) หรือสร้างแผนที่ของคุณแบบไดนามิกเพื่อมุมมองปัจจุบันของผู้ใช้

ไทล์สแควร์ค่อนข้างง่ายที่จะจัดการกับคำถาม แต่ฉันไม่คิดว่าการสร้างแผนที่ hex แบบเรียงต่อกันนั้นยาก

นี่เป็นบทความเก่าจาก GameDev.net คุณอาจพบว่ามีประโยชน์ มันเกี่ยวกับการทำภาพวาดสามมิติแบบหกเหลี่ยมและหกเหลี่ยมบนตาราง

http://www.gamedev.net/reference/articles/article747.asp

Googling "hex hex tiling" จะทำให้คุณได้รับความนิยมจำนวนมากบางอันมีประโยชน์บ้าง


1

ฉันใช้งานกล้องเครือข่าย PTZ หลายตัวจาก Sony รุ่น SNC-RX570N เพื่อจุดประสงค์ในการติดตามวัตถุที่เคลื่อนไหวบนท้องฟ้าและการวิเคราะห์ตำแหน่งเพื่อรับแทร็ก 3 มิติที่แท้จริง หนึ่งในแง่มุมของการตั้งค่าเริ่มต้นคือการกำหนด "ทัวร์" แบบไม่ต้องใส่ข้อมูลซึ่งต้องเลือกจุดอ้างอิง มีจุด จำกัด ที่ตั้งโปรแกรมได้จำนวน จำกัด และฉันต้องการครอบคลุมซีกโลกทั้งใบ ("ทรงกลมท้องฟ้า") จากขอบฟ้าสู่สุดยอดโดยไม่มีช่องว่าง

ดังนั้นฉันจึงถามตัวเองว่า "จุดทางต่ำสุดที่ฉันต้องการสำหรับการครอบคลุมแบบเต็มคืออะไร (ไม่มีช่องว่าง)" ฉันค้นพบว่าจริง ๆ แล้วฉันไม่สามารถเข้าใจได้อย่างเต็มที่

กล้องมีการแพนที่ไม่มีที่สิ้นสุด (360 องศา) และเอียง 0-90 องศาดังนั้นในทางทฤษฎีจึงเป็นไปได้ที่จะได้การครอบคลุมที่สมบูรณ์ จอแสดงผลของกล้องที่มีไว้สำหรับการใช้คอมพิวเตอร์นั้นคืออัตราส่วนภาพ 4: 3 FOV แนวนอนหยาบที่การซูม 1 เท่าคือ 58 องศา

มีสองวิธีในการเป็นตัวแทนของปัญหาขึ้นอยู่กับการฉายภาพที่เลือกอย่างใดอย่างหนึ่ง: - เส้นตรงเช่น Mercator โดยเส้นขอบฟ้าคือ "เส้นศูนย์สูตร" และสุดยอดคือ "เสา" ขยายไปทั่ว 360 องศาของกระทะ - ขั้วโลกโดยเส้นขอบฟ้าคือเส้นรอบวงของวงกลมและสุดยอดคือศูนย์กลางของวงกลม

ฉันพบว่าขั้วโลกเป็นวิธีที่ง่ายที่สุดในการแก้ไขปัญหา ฉันสามารถแกะสลักวงกลมเป็นชิ้นวงกลมขนาด FOV แนวนอนและนี่บอกฉันว่าฉันต้องมี 7 จุดรอบวงกลมด้วย 58 องศา H-FOV จนถึงตอนนี้ดีมาก รัศมีภายในเป็นเพียงความเอียงหรือ V-FOV ซึ่งก็คือ 3/4 จาก 58 องศา จนถึงตอนนี้ดีมาก - ฉันครอบคลุมส่วนนอกสุดของวงกลม

แต่มันก็ยากขึ้นเมื่อเราเข้าใกล้สุดยอด ฉันจะสมมติว่าหนึ่งในจุดของฉันอยู่ที่จุดสุดยอด ฉันจะแมปสี่เหลี่ยมมุมมองของฉันไปยังพื้นที่รอบ ๆ ศูนย์กลางของวงกลมได้อย่างไร รูปร่างนั้นเป็นรูปสี่เหลี่ยมผืนผ้าวงรีเบาะสำหรับปักเข็มหรืออะไร ฉันจะเติมบิตกลางระหว่างการครอบคลุมด้านนอกที่เรียบร้อยอย่างดีและรูปร่างแปลก ๆ ที่สุดยอดนี้ได้อย่างไร flummoxed

ฉันสังเกตว่ามุมแข็งของซีกโลกคือสเตอรอยด์ 2 * PI และ FOV ของฉันที่ 1x ซูมเท่ากับ 0.762 เซนต์หมายความว่าฉันต้องมีอย่างน้อย 9 ครั้ง ฉันสงสัยว่าคำตอบนั้นสูงกว่า 9


แล้วเรื่องนี้ .. วงกลมมีพื้นที่ PI ^ 2 rad ^ 2 และ FOV rectangles เป็นพื้นที่ 0.75 rad ^ 2 อย่างไร้เดียงสาเราต้องการ 13.16 คะแนนซึ่งจะต้องปัดเศษขึ้นเพื่อให้ครอบคลุมเต็มถึง 14 คะแนน คำถามคือ - จะวางสิ่งเหล่านี้ได้อย่างไร
แอนดรู

0

หากคุณต้องการสร้างตารางทั่วโลกฉันขอแนะนำให้คุณแบ่งดาวเคราะห์ในประเทศหรือทวีปและทำตารางสี่เหลี่ยมให้อยู่กึ่งกลางแต่ละศูนย์ ปล่อยให้มหาสมุทรครอบคลุมตะเข็บ


ที่จริงแล้วคำถามของฉันคือ "เนื่องจากเห็นได้ชัดว่าฉันไม่สามารถทำสิ่งที่คุณคิดว่าฉันถามจริง ๆ ฉันจะทำอะไรแทน"
clweeks

ดีมากแก้ไขแล้ว
zaratustra

ใช่ฉันเดาว่าฉันได้รับการติดตามด้านข้างโดยส่วนอื่น ๆ ฉันกำลังคิดเกี่ยวกับการนำ Dymaxion Map ของฟุลเลอร์มาใช้ แต่การทำงานกับกระเบื้องรูปสามเหลี่ยมดูเหมือนว่าเป็นคลัสเตอร์มาก * เช่นเดียวกับปัญหาการเรียงตัวของขั้วโลกที่ฉันเริ่มต้น ดังนั้นด้วยคำแนะนำของคุณถ้าใครบางคนกำลังล่องเรือจากอเมริกาเหนือสู่เอเชียเหนือและพิกัดสำคัญ (บางทีพวกเขาสามารถสร้างฐานลอยหรืออะไร) ฉันจะเย็บตะเข็บด้วยกันได้อย่างไร เพิ่งมากับตารางการเชื่อมต่อ NA: A5 -> A: Z475
clweeks

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