첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 icodebroker@naver.com으로 보내주시면 감사합니다.
블로그 자료는 자유롭게 사용하세요.

728x90
반응형

▶ 다각형 꼭지점 리스트 구하기 예제

using System.Collections.Generic;

// 중심점 (300, 300), 반지름 100인 크기의 원에서 5각형 꼭지점 리스트를 구한다.
List<DoublePoint> polygonVertexList = GetPolygonVertexList(new DoublPeoint(300d, 300d), 100d, 5);

 

▶ 다각형 꼭지점 리스트 구하기

using System;
using System.Collections.Generic;

#region 다각형 꼭지점 리스트 구하기 - GetPolygonalVertexList(centerPoint, radius, vertexCount)

/// <summary>
/// 다각형 꼭지점 리스트 구하기
/// </summary>
/// <param name="centerPoint">중심점</param>
/// <param name="radius">반경</param>
/// <param name="vertexCount">꼭지점 수</param>
/// <returns>다각형 꼭지점 리스트</returns>
public List<DoublePoint> GetPolygonalVertexList(DoublePoint centerPoint, double radius, int vertexCount)
{
    List<DoublePoint> list = new List<DoublePoint>();

    for(int i = 0; i < vertexCount; i++)
    {
        double radian = (double)i * 2d * Math.PI / (double)vertexCount;

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

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

    return list;
}

#endregion

/// <summary>
/// 실수 포인트
/// </summary>
public class DoublePoint
{
    //////////////////////////////////////////////////////////////////////////////////////////////////// Property
    ////////////////////////////////////////////////////////////////////////////////////////// Public

    #region X - X

    /// <summary>
    /// X
    /// </summary>
    public double X { get; set; }

    #endregion
    #region Y - Y

    /// <summary>
    /// Y
    /// </summary>
    public double Y { get; set; }

    #endregion

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

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

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

    #endregion

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

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

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

    #endregion
}
728x90
반응형
Posted by 사용자 icodebroker
TAG , ,

댓글을 달아 주세요