gtk - c++调用cairo库如何实现图元沿曲线分布,即Drawing Lines with Image Patterns。
迷茫
迷茫 2017-04-17 15:32:11
0
1
679

这种沿贝塞尔曲线分布图像的方式用cairo库怎么实现,希望有做图形方面的来交流一下
,这个是图元

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

모든 응답(1)
刘奇

저는 카이로를 사용해 본 적이 없지만 베지어 곡선에 대해서는 알고 있습니다.
우선 카이로에 베지어 곡선 기능이 포함되어 있다면 말할 필요도 없습니다.
베지어 곡선은 분할 정복 방법을 사용하여 구현할 수 있는 연속 코너 절단과 같은 서브피전 방법을 사용하여 구현할 수 있습니다.
또 다른 일반적으로 사용되는 방법은 드 카스텔자우(de Casteljau) 알고리즘입니다. 이는 컨트롤 스틱에서 선형 보간(슬라이딩)으로 그리는 것입니다. 자세한 내용은 위키를 참조하세요.


그렇습니다. 질문에 답하기 위해 de Casteljau 알고리즘을 사용하여 그리기 프로그램을 작성했습니다.

핵심 코드:

으아아아

전체 코드


프리미티브가 곡선을 따라 고르게 분포되도록 하려면 곡선의 호 길이를 u의 함수로 계산해야 합니다. 그러나 베지어 곡선의 표현은 더 복잡하며 호 길이를 적분하는 것은 다음과 같습니다. 훨씬 더 복잡합니다. 따라서 간격 점을 결정하기 위해 수치적 방법을 사용하는 것이 좋으며, 곡선 위의 각 간격 점의 법선 벡터를 쉽게 얻을 수 있으므로 프리미티브를 곡선에 매핑하기가 쉽습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿