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

■ 나선을 그리기 위한 좌표들을 계산해서 리스트로 반환하는 방법을 보여준다.

 

▶ 나선형(Spiral) Point 리스트 구하기 예제 (C#)

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

// 중심점 (300, 300), 반지름 100인 크기의 원에서 30도 간격으로 1440도를 회전하는 나선형 Point 리스트를 구한다.
List<Point> spiralPointList = GetSpiralPointList(new Point(300d, 300d), 100d, 30d, 1440d);

 

▶ 나선형(Spiral) Point 리스트 구하기 (C#)

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

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

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

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

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

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

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

    return list;
}

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

댓글을 달아 주세요