मैं निम्नलिखित जानकारी मिल गया है:3 डी एक क्षेत्र पर निर्देशांक अक्षांश और देशांतर
मूल (0,0,0) और त्रिज्या आर साथ एक क्षेत्र मौजूद है एक किरण-क्षेत्र चौराहे मैं करने के बाद 3 डी स्पेस में एक बिंदु (एक्सवाईजेड) को जानें जो गोलाकार पर है (3 डी स्पेस में सटीक स्थिति जहां रेखा गोलाकार छेद को छिड़कती है)।
मेरे कार्यक्रम के लिए मैं क्षेत्र पर XYZ बिंदु के अक्षांश और देशांतर की गणना करना चाहता हूं, लेकिन मैं इसे (या Google) आसानी से ऐसा करने का तरीका नहीं सोच सकता।
तो संक्षेप में, समारोह है कि मैं लिखने के लिए कोशिश कर रहा हूँ यह है:
public static LatLon FromVector3(Vector3 position, float sphereRadius)
{
return Latitude and Longitude
}
किसी को भी ऐसा करने के तरीके पता है? एक संदर्भ के रूप में इस विकी एसवीजी फ़ाइल उपयोगी हो सकता है:
इसके अलावा, मैं इस वापस अक्षांश और XYZ के लिए देशांतर से कन्वर्ट करने के लिए मिल गया है, वह भी उपयोगी हो सकता है: http://swardsonstudios.com/?p=65
अद्यतन:
के लिए धन्यवाद बिल्कुल उपयोगी जवाब है, तो अंत में मैं इस कोड के साथ चला गया: पी:
public static LatLon FromVector3(Vector3 position, float sphereRadius)
{
float lat = (float)Math.Acos(position.Y/sphereRadius); //theta
float lon = (float)Math.Atan(position.X/position.Z); //phi
return new LatLon(lat, lon);
}
अब मैं जिनमें से जवाब मुझे सबसे ज्यादा स्वीकार करने के लिए मदद की सोचने के लिए मिल गया है।
क्या निर्देशांक आप उपयोग कर रहे ?? एक्स, वाई, जे –
की तुलना में गोलाकार ध्रुवीय निर्देशांक का उपयोग करें, मैंने जो एक्सवाईजेड निर्देशांक का उल्लेख किया है, वे सिर्फ सादा 3 डी निर्देशांक हैं और गोलाकार निर्देशांक से कोई संबंध नहीं है: http://ecommprojects.com/seo/Ahmed-Zewails-4d-Telescope/xyz -coordinates.png –
मैंने पाया कि स्किनकिट का उपयोग करके सही हस्ताक्षर करने के लिए अक्षांश/लंबा होने के लिए, मुझे इसकी आवश्यकता है: फ्लोट अक्षांश = - ((फ्लोट) acosf (result.localCoordinates.y/sphereRadius) - M_PI_2); // theta फ्लोट रेखांश = एमएफआई - ((फ्लोट) atan2f (result.localCoordinates.z, result.localCoordinates.x)); // // फाई यदि (रेखांश> एमएफआई) { देशांतर = देशांतर - (2।0 * एमएफआई); } – PKCLsoft