سؤال

أنا أعمل في تطبيق iPhone آخر يستخدم AR ، وأنا أقوم بإنشاء إطار عمل خاص بي ، لكنني أواجه مشكلة ساعدني في ذلك؟

شكرا لك مقدما!

هل كانت مفيدة؟

المحلول

إذا كانت النقطتين قريبة بما يكفي معًا ، وبعيدًا عن الأعمدة ، فيمكنك استخدام بعض المثلثات البسيطة:

float dy = lat2 - lat1;
float dx = cosf(M_PI/180*lat1)*(long2 - long1);
float angle = atan2f(dy, dx);

تحرير: لقد نسيت أن أذكر ذلك latN و longN - وبالتالي dx و dy - يمكن أن يكون بدرجات أو راديان ، طالما أنك لا تخلط الوحدات. angle, ومع ذلك ، سوف يعود دائما في الراديان. بالطبع ، يمكنك إعادتها إلى الدرجات إذا كنت تضاعف بمقدار 180/M_PI.

نصائح أخرى

هنا إصدار Android من هذا الرمز

import com.google.android.maps.GeoPoint;
    public double calculateAngle(GeoPoint startPoint, GeoPoint endPoint) {
        double lat1 = startPoint.getLatitudeE6() / 1E6;
        double lat2 = endPoint.getLatitudeE6() / 1E6;
        double long2 = startPoint.getLongitudeE6() / 1E6;
        double long1 = endPoint.getLongitudeE6() / 1E6;
        double dy = lat2 - lat1;
        double dx = Math.cos(Math.PI / 180 * lat1) * (long2 - long1);
        double angle = Math.atan2(dy, dx);
        return angle;
    }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top