पूर्णांक के बारे में पहले से ही एक अच्छा जवाब है, लेकिन मुझे लगता है कि फ्लोटिंग-पॉइंट्स को समाप्त नहीं किया जाना चाहिए। अपने जवाब में, बाइटे 56 ने प्लूटो की अधिकतम कक्षा के लिए जाने का विकल्प लिया, शायद इस एक्सेल शीट से लिया गया था , इसलिए मैं उससे चिपक जाऊंगा ।
सौर प्रणाली की सीमाएँ निम्नलिखित हैं:
7,376,000,000 किमी = 7.376x10 ^ 9 किमी = 7.376x10 ^ 14 सेमी x10 7.4x10 ^ 14 सेमी
डबल-प्रेसिजन फ्लोटिंग प्वाइंट प्रारूप प्रस्तावों 15 महत्वपूर्ण दशमलव की एक अधिकतम परिशुद्धता। तो आप भाग्यशाली हैं: यदि आपकी उत्पत्ति सूर्य के केंद्र में है और आप प्लूटो के चारों ओर एक स्थिति का उपयोग करते हैं, तो आप सभी सेंटीमीटर का प्रतिनिधित्व कर सकते हैं , जैसे सी ++ में:
printf("%.0Lf\n", 7.4e14);
printf("%.0Lf\n", 7.4e14 + 1.0);
printf("%.0Lf\n", 7.4e14 + 2.0);
Output:
-------
740000000000000
740000000000001
740000000000002
तो अगर आप अपने खेल को प्लूटो की कक्षा तक सीमित कर सकते हैं, तो बधाई! आपने इसे दर्शाने के लिए युगल के साथ पर्याप्त सटीकता प्राप्त की है।
हालांकि, सावधान रहें कि यह एक सिमुलेशन में इसका प्रतिनिधित्व करने के लिए पर्याप्त है , लेकिन इस दर्द को प्रस्तुत करने की अपेक्षा न करें। आपको 32-बिट फ़्लोट में कनवर्ट करना होगा, हो सकता है कि आप अपने मूल को बदल दें ताकि आपको पास की वस्तुओं पर पर्याप्त सटीकता प्राप्त हो, और आपको संभवतः ठीक से रेंडर करने के लिए यह सब प्राप्त करने के लिए कुछ Z- बफर और कैमरा फ़्रिस्म ट्रिकरी पर निर्भर रहना पड़ेगा। ।
अब, यदि आप चाहते हैं कि आपके अंतरिक्ष यात्री ऊर्ट बादल में कुछ दूर धूमकेतु की यात्रा करें , जो कि बड़ा है, तो यह खत्म हो गया है। लगभग 10 ^ 16 सेमी, आप सटीकता खोना शुरू करते हैं:
printf("%.0Lf\n", 1.0e16);
printf("%.0Lf\n", 1.0e16 + 1.0);
printf("%.0Lf\n", 1.0e16 + 2.0);
Output:
-------
10000000000000000
10000000000000000 <-- oops
10000000000000002
और यह निश्चित रूप से और खराब हो जाता है।
इसलिए यदि आप इस मामले में हैं, तो आप कुछ और उन्नत समाधानों को आजमाना चाहेंगे। मेरा सुझाव है कि आप गेम प्रोग्रामिंग गम्स 4 में पीटर फ्रीज़ के लेख पर नज़र डालें : "बड़े विश्व समन्वय में 2.3 समाधान सटीकता की समस्या"। IIRC, वह एक प्रणाली का सुझाव देता है जो आपकी आवश्यकताओं के अनुरूप हो सकती है, यह वास्तव में कई प्रकार के कई अलग-अलग समन्वय स्थान हैं।
यह सिर्फ कुछ संकेत हैं, आपको शायद इसे चलाने के लिए खुद के कुछ नुस्खा का उपयोग करना होगा। किसी ने जो पहले से ही उस तरह के सामान को लागू किया है वह आपको अधिक मदद कर सकता है। उदाहरण के लिए, कर्बला स्पेस प्रोग्राम के पीछे लोगों को ईमेल फायरिंग क्यों नहीं ?
अपने खेल के साथ गुड लक!