본문 바로가기

프로그램/유니티 스크립트 소스

[유니티 스크립트 소스] Degree Minute Second To Degree

728x90
반응형
using System;
using UnityEngine;

public class DMS
{
    public int degree;
    public int minute;
    public double second;
};

public class DmsDemo : MonoBehaviour
{    
    void Start()
    {
        Debug.Log(DmsToDegree(37, 33, 58.87)); // 37.5663527777778

        DMS dms = DegreeToDms(126.9779528);

        Debug.Log($"{dms.degree}° {dms.minute}’ {dms.second}”"); // 126°58’40.63”
    }

    private double DmsToDegree(int degree, int minute, double second)
    {
        return
            degree + (minute / 60d) + (second / 3600d);
    }

    private DMS DegreeToDms(double degree)
    {
        DMS dms = new DMS();

        dms.degree = (int)Math.Truncate(degree);
        dms.minute = (int)Math.Truncate((degree - dms.degree) * 60);
        dms.second = (((degree - dms.degree) * 60) - dms.minute) * 60;

        return dms;
    }
}
728x90
반응형