আপনি যে প্রোগ্রামিং ল্যাঙ্গুয়েজটি ব্যবহার করছেন তা যদি ভাসমান পয়েন্ট সংখ্যাগুলিতে (পাইথন এবং রুবির মতো)% (মোড) অপারেটরটিকে সমর্থন করে তবে আমি এটি ব্যবহারের পরামর্শ দেব। অন্যথায়, কিছু অন্যান্য ভাষা (যেমন সি এবং সি ++) আপনাকে fmod () ব্যবহার করার অনুমতি দেয়।
(আপনি যে কোনও মোড অপারেটর ব্যবহার করুন না কেন, সময়ের আগে নিশ্চিত করে নিন যে এটি ভাসমান-পয়েন্ট সংখ্যাগুলিতে মোড অপারেশন করবে এবং এটি সর্বদা আপনাকে অ-নেতিবাচক জবাব দেবে Otherwise নইলে আপনি পরে একটি অদ্ভুত চমক পেয়ে যাবেন যখন আপনার অনেকগুলি ল্যাট / দীর্ঘ পয়েন্টগুলি সঠিক নয়))
এটি এর মতো ব্যবহার করুন:
# Put the longitude in the range of [0,360):
longitude %= 360
# Put the longitude in the range of [-180,180):
if longitude >= 180:
longitude -= 360
যদি আপনি এটি সমস্ত লাইনেই করতে পছন্দ করেন:
# Put the longitude in the range of [-180,180):
longitude = (longitude + 180) % 360 - 180
এই পদ্ধতির কোনও লুপ নেই, সুতরাং আপনার পর্যবেক্ষণ পৃথিবীর চারপাশে যতবার ঘুরেছে, সেগুলি বারবার যুক্ত বা বিয়োগের প্রয়োজন ছাড়াই দ্রাঘিমাংশের মানগুলিকে স্বাভাবিক করবে।
সম্পাদনা:
হুমম ... আমি কেবল লক্ষ্য করেছি যে জাভাস্ক্রিপ্টটি %
নেতিবাচক মানগুলির সাথে হ্যান্ডেল করে বলে মনে হচ্ছে না যেমন এটি ভেবেছিল।
সেক্ষেত্রে এই ওয়ান-লাইনারটি ব্যবহার করে দেখুন:
longitude = (longitude + 36180) % 360 - 180
36180
আমরা যোগ করছি 36,000 + + 180. 36,000 ইতিবাচক ডোমেইনের মধ্যে একটি নেতিবাচক মান সরাতে, এবং 180 ওভার যাতে যখন এটি দ্বারা modded হয় নামান হয় 360
পরিসীমা, এটা হবেন [0,360) । - 180
অংশ বদল আনতে এটি [-180,180) পরিসীমা ফিরে।
এখানে অন্য একটি লাইনার রয়েছে, এটি এমন এক যে 36,000 পর্যাপ্ত পরিমাণে বড় হওয়ার উপর নির্ভর করে না:
longitude = (longitude % 360 + 360 + 180) % 360 - 180
longitude % 360 + 360
অংশ ইতিবাচক ডোমেইনে মান থাকার বিষয়টি মতেই নিশ্চিত করবে যখন এটি পরে দ্বারা modded এর 360
। + 180
অংশ বদল আনতে এটি উপর যাতে যখন এটি পরে পায় 180 এটা (সঙ্গে থেকে বিয়োগ - 180
), এটি [-180,180) পছন্দসই সীমার মধ্যে থাকব।