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

728x90
반응형

▶ 나선형 Point 리스트 구하기 예제

using System.Collections.Generic;
using System.Windows;

List<Point> spiralPointList = GetSpiralPointList(new Point(300d, 300d), 100d, 2000d, 20d);

 

▶ 나선형 Point 리스트 구하기

using System;
using System.Collections.Generic;
using System.Windows;

#region 나선형 Point 리스트 구하기 - GetSpiralPointList(centerPoint, radius, pointCount, reviseCount)

/// <summary>
/// 나선형 Point 리스트 구하기
/// </summary>
/// <param name="centerPoint">중심점</param>
/// <param name="radius">반경</param>
/// <param name="pointCount">포인트 수</param>
/// <param name="reviseCount">수정 수</param>
/// <returns>나선형 Point 리스트</returns>
public List<Point> GetSpiralPointList(Point centerPoint, double radius, int pointCount, int reviseCount)
{
    List<Point> list = new List<Point>();

    for(int i = 0; i < pointCount; i++)
    {
        double angle = i * 2d * Math.PI / (pointCount / reviseCount);
        double scale = radius * (1 - (double) i / pointCount);

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

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

    return list;
}

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

댓글을 달아 주세요