■ 나선형 Point 리스트를 구하는 방법을 보여준다.
▶ 나선형 Point 리스트 구하기 예제 (C#)
1 2 3 4 5 6 |
using System.Collections.Generic; using System.Windows; List<Point> spiralPointList = GetSpiralPointList(new Point(300d, 300d), 100d, 2000d, 20d); |
▶ 나선형 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 |
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 |