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

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

------------------------------------------------------------------------------------------------------------------------

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

}

------------------------------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker
TAG , ,

댓글을 달아 주세요