첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170
using System;

/// <summary>
/// 각도
/// </summary>
public struct Degree
{
    //////////////////////////////////////////////////////////////////////////////////////////////////// Field
    ////////////////////////////////////////////////////////////////////////////////////////// Public

    #region Field

    /// <summary>
    /// 값
    /// </summary>
    public double Value;

    #endregion

    //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
    ////////////////////////////////////////////////////////////////////////////////////////// Public

    #region 생성자 - Degree(value)

    /// <summary>
    /// 생성자
    /// </summary>
    /// <param name="value">값</param>
    public Degree(double value)
    {
        this.Value = value;
    }

    #endregion

    //////////////////////////////////////////////////////////////////////////////////////////////////// Method
    ////////////////////////////////////////////////////////////////////////////////////////// Public

    #region 설정하기 - Set(value)

    /// <summary>
    /// 설정하기
    /// </summary>
    /// <param name="value">값</param>
    public void Set(double value)
    {
        this.Value = value;
    }

    #endregion

    #region DMS 구하기 - GetDMS()

    /// <summary>
    /// DMS 구하기
    /// </summary>
    /// <returns>DMS</returns>
    public DMS GetDMS()
    {
        double degree;
        double minute;
        double second;

        degree = (int)this.Value;
        minute = (int)((this.Value - degree) * 60);
        second = ((this.Value - degree) * 60 - minute) * 60;

        return new DMS(degree, minute, second);
    }

    #endregion

    #region 라디안 구하기 - GetRadian()

    /// <summary>
    /// 라디안 구하기
    /// </summary>
    /// <returns>라디안</returns>
    public double GetRadian()
    {
        return this.Value * Math.PI / 180d;
    }

    #endregion
}

※ DMS 구조체 : '도/분/초 구조체' 항목을 참조한다.

728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요