문제

B- 스플라인을 시각화해야 할 수도 있습니다 ( http://en.wikipedia.org/wiki/b-spline ) .net에서. 나는 어디서부터 시작 해야할지하지 않는다. 쉬운 방법이나 도서관이 있습니까? 나는 Silverlight에서 그것을 선호하지만 WPF와 Win Forms도 괜찮습니다. 소프트웨어가 스플라인을 다시 칠할 수있는 제어 지점이있는 좌표 시스템으로 상상합니다. 수학적 배경이 부족합니다. GDI+에서 스플라인을 그리기위한 것 같지만 B- 스플라인인지 확실하지 않습니다.

모든 조언에 감사드립니다. 라이브러리, 코드, 가이드 링크 또는 일반 제안을 환영합니다.

도움이 되었습니까?

해결책

나는 Splines를 활용 한 일부 과학 코드에 대해 아주 잠시 매우 빠른 프로그램을 작성했습니다. 특히, 이들 스플라인은 nurbs (비 균일 한 합리적 기준 스플라인)입니다. 이것은 스플라인의 가장 일반화 된 형태입니다. 다른 모든 스플라인은이 유형의 특별한 경우입니다. 매듭 벡터는 스플라인을 생성하는 데 사용되며 재귀적인 Cox de Boor 알고리즘은 점의 값을 계산하는 데 사용됩니다. C# 코드는 매우 가난하며 문제를 해결하기 위해 빨리 함께 던진 것이었고 더 세련된 개발자가되기 전에. Google Cox de Boor라면 스플라인의 이론적 토대에 대해 논의하는 많은 페이지를 찾을 수 있습니다. 조심하십시오. 대부분은 일종의 오류가 있습니다 (일부는 매듭 벡터에 대한 논의에서 그들 중 일부는)

http://stochfit.svn.sourceforge.net/viewvc/stochfit/trunk/nurbs/

나는 모든 수학적 세부 사항을 기억하지 못하지만 답을 알고 있다면 도움을 줄 것입니다. 행운을 빕니다. 이것은 제 입장에서 습득하기가 매우 어려운 지식이었습니다!

편집 - 주어진 지점의 무게를 1로 설정하면 이러한 방법으로부터 B- 스플라인을 얻는다 고 생각합니다.

다른 팁

B-Spline은 문제에 대한 해결책입니다. 문제를 설명하고 최상의 솔루션이 무엇인지 물어봐야합니다. GDI+에는 드로잉 스플라인을위한 DrawBezier 및 DrawCurve가 포함되어있어 시작하기에 좋은 지점이 될 수 있습니다. 이 같은:

Point p1 = new Point(10, 10);
Point p2 = new Point(50, 10);
Point p3 = new Point(10, 50);
Point p4 = new Point(50, 50);
e.Graphics.DrawBezier(Pens.Blue, p1, p2, p3, p4);

P2와 P3은 곡선의 일부가 아니라 '제어점'이면 효과를 확인하도록 이동합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top