2013-06-11 7 views
2

B- 스플라인 곡선이 있습니다. 나는 모든 노트와 컨트롤 포인트의 x, y 좌표를가집니다.B- 스플라인을 베 지어 곡선으로 변환

B- 스플라인 곡선을 베 지어 곡선으로 변환해야합니다.

최종 목표는 html5 캔버스 요소에 모양을 그릴 수있게하는 것입니다. B-Spline은 베 지어를 지원하지 않는 dxf 파일에서 가져 오지만 캔버스는 베 지어 만 지원합니다.

나는 프로세스를 설명하려고하는 몇 가지 기사를 찾았지만, 그들은 내 머리를 약간 넘어서 매우 이론 집중적 인 것처럼 보인다. 나는 도움이 필요한 예제 나 단계가 필요하다.

여기 내가 찾은 내용은 다음과 같습니다 (Explains B-Splines), (Converting to Beziers), (Javascript Example)

는 그러나이 계정으로 노드에 의해 할당 된 무게를하지 않는 것, 실제 코드가 포함되어 있기 때문에 마지막 링크가 좋다. 이것은 커브가 제어점을 통과하는지 여부에 영향을 미치는 것처럼 중요하다고 생각합니다.

유용한 노드라면 내 노드 또는 제어점을 공유 할 수 있습니다. 누군가가 단계별 절차를 가르쳐 주거나 psuedo (또는 실제) 코드로 나를 도와 주면 너무 감사하게 생각합니다.

+0

제어점에 대한 정보를 게시 한 경우 도움이됩니다. 예를 들어 귀하의 포인트 [x, y], [x, y, w], [xw, yw, zw, w] 또는 다른 것입니까? 스플라인을 정의하는 모든 것을 보여주는 작은 예제 만 게시하면 많은 도움이됩니다. – tfinniga

답변

1

나는 cubic B-Splines에 대한 Boehm의 알고리즘을 간단한 자바 구현으로 작성했습니다. Computer Aided Geometric Design- Sederberg 당신이 구현에만 관심이 있다면

, 나는 내가 여기에 쓴 클래스를 연결 한 : 그것은 6.3 절에 여기에 설명 극성 값을 포함하는 매우 간단 구현의 bsplines.js

+6

bsplines.js에 대한 링크가 더 이상 작동하지 않습니다. 네가 복직시킬 기회가있어? – pancake

0

것은이 도움이 될 수 있습니다 - https://github.com/Tagussan/BSpline

프로젝트가 진행되어 더 이상 필요하지 않지만 제어점을 입력하고 커브를 그릴 때 매우 유용합니다.

+0

부드러운 곡선을 그리는 간단한 방법은 [cardinal splines] (https://github.com/epistemex/cardinal-spline-js)를 참조하십시오. – K3N

+0

@TimSum 참조 된 GitHub 프로젝트는 래스터 기법을 사용하여 스플라인을 렌더링하는 것처럼 보입니다. 베 지어 커브로 변환되지 않는다고 생각합니다. 나는 아직도 나를위한 해결책을 찾고있다. –