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

/// <summary>
/// Double형 Point
/// </summary>
public struct DoublePoint
{
    //////////////////////////////////////////////////////////////////////////////////////////////////// Field
    ////////////////////////////////////////////////////////////////////////////////////////// Private

    #region Field

    /// <summary>
    /// X 좌표
    /// </summary>
    private double x;

    /// <summary>
    /// Y 좌표
    /// </summary>
    private double y;

    #endregion

    //////////////////////////////////////////////////////////////////////////////////////////////////// Property
    ////////////////////////////////////////////////////////////////////////////////////////// Public

    #region X 좌표 - X

    /// <summary>
    /// X 좌표
    /// </summary>
    public double X
    {
        get
        {
            return this.x;
        }
        set
        {
            this.x = value;
        }
    }

    #endregion

    #region Y 좌표 - Y

    /// <summary>
    /// Y 좌표
    /// </summary>
    public double Y
    {
        get
        {
            return this.y;
        }
        set
        {
            this.y = value;
        }
    }

    #endregion

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

    #region 생성자 - DoublePoint(x, y)

    /// <summary>
    /// 생성자
    /// </summary>
    /// <param name="x">X 좌표</param>
    /// <param name="y">Y 좌표</param>
    /// <returns></returns>
    public DoublePoint(double x, double y)
    {
        this.x = x;
        this.y = y;
    }

    #endregion

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

    #region 문자열 구하기 - ToString()

    /// <summary>
    /// 문자열 구하기
    /// </summary>
    /// <returns>문자열</returns>
    public override string ToString()
    {
        return string.Format("({0}, {1})", this.x, this.y);
    }

    #endregion
}


#region 나선형 포인트 리스트 구하기 - GetSpiralPointList(centerPoint, radius, stepAngle, spiralAngle)

/// <summary>
/// 나선형 포인트 리스트 구하기
/// </summary>
/// <param name="centerPoint">중심점</param>
/// <param name="radius">반경</param>
/// <param name="stepAngle">단계 각도</param>
/// <param name="spiralAngle">나선 각도</param>
/// <returns>나선형 포인트 리스트</returns>
public List<DoublePoint> GetSpiralPointList(DoublePoint centerPoint, double radius, double stepAngle, double spiralAngle)
{
    List<DoublePoint> list = new List<DoublePoint>();

    for(double angle = 0d; angle < spiralAngle; angle += stepAngle)
    {
        double saleRadius = radius * angle / spiralAngle;

        double radian = Math.PI * angle / 180d;

        double x = centerPoint.X + saleRadius * Math.Cos(radian);
        double y = centerPoint.Y + saleRadius * Math.Sin(radian);

        list.Add(new DoublePoint(x, y));
    }

    return list;
}

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

댓글을 달아 주세요