■ 나선을 그리기 위한 좌표들을 계산해서 리스트로 반환하는 방법을 보여준다.
▶ 나선형(Spiral) Point 리스트 구하기 예제 (C#)
1 2 3 4 5 6 7 |
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#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
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 |