728x90
반응형
728x170
using System.Collections.Generic;
using System.Windows;
#region 베지어 곡선 포인트 리스트 구하기 - GetBezierCurvePointList(startPoint, controlPoint1, controlPoint2, endPoint, pointCount)
/// <summary>
/// 베지어 곡선 포인트 리스트 구하기
/// </summary>
/// <param name="startPoint">시작점</param>
/// <param name="controlPoint1">제어점 1</param>
/// <param name="controlPoint2">제어점 2</param>
/// <param name="endPoint">종료점</param>
/// <param name="pointCount">포인트 수</param>
/// <returns>베지어 곡선 포인트 리스트</returns>
public List<Point> GetBezierCurvePointList(Point startPoint, Point controlPoint1, Point controlPoint2, Point endPoint, int pointCount)
{
List<Point> list = new List<Point>(pointCount);
for(int i = 0; i < pointCount; i++)
{
double t = (double)i / (pointCount - 1);
double x = (1 - t) * (1 - t) * (1 - t) * startPoint.X +
3 * t * (1 - t) * (1 - t) * controlPoint1.X +
3 * t * t * (1 - t) * controlPoint2.X +
t * t * t * endPoint.X;
double y = (1 - t) * (1 - t) * (1 - t) * startPoint.Y +
3 * t * (1 - t) * (1 - t) * controlPoint1.Y +
3 * t * t * (1 - t) * controlPoint2.Y +
t * t * t * endPoint.Y;
list.Add(new Point(x, y));
}
return list;
}
#endregion
728x90
반응형
그리드형(광고전용)
'C# > WPF' 카테고리의 다른 글
[C#/WPF] BitmapImage 클래스 : 회전 비트맵 이미지 구하기 (0) | 2014.01.25 |
---|---|
[C#/WPF] <T>KeyFrame 클래스 : KeyTime 속성 사용하기 (0) | 2014.01.23 |
[C#/WPF] LinearGradientBrush 클래스 : 애니메이션 이동 길이 구하기 (0) | 2014.01.23 |
[C#/WPF] Timeline 엘리먼트 : RepeatBehavior 속성 사용하기 (0) | 2014.01.22 |
[C#/WPF] Timeline 엘리먼트 : Duration 속성 사용하기 (0) | 2014.01.22 |
[C#/WPF] 나선형 Point 리스트 생성하기 (0) | 2014.01.22 |
[C#/WPF] ListBox 클래스 : ListCollectionView를 이용해 GroupStyle 설정하기 (0) | 2014.01.22 |
[C#/WPF] CollectionView 클래스 : Filter 속성 설정하기 (0) | 2014.01.22 |
[C#/WPF] CollectionView 클래스 : 정렬 순서 추가하기 (0) | 2014.01.15 |
[C#/WPF] CollectionView 클래스 : 정렬 순서 지우기 (0) | 2014.01.15 |
댓글을 달아 주세요