저는 카이로를 사용해 본 적이 없지만 베지어 곡선에 대해서는 알고 있습니다. 우선 카이로에 베지어 곡선 기능이 포함되어 있다면 말할 필요도 없습니다. 베지어 곡선은 분할 정복 방법을 사용하여 구현할 수 있는 연속 코너 절단과 같은 서브피전 방법을 사용하여 구현할 수 있습니다. 또 다른 일반적으로 사용되는 방법은 드 카스텔자우(de Casteljau) 알고리즘입니다. 이는 컨트롤 스틱에서 선형 보간(슬라이딩)으로 그리는 것입니다. 자세한 내용은 위키를 참조하세요.
그렇습니다. 질문에 답하기 위해 de Casteljau 알고리즘을 사용하여 그리기 프로그램을 작성했습니다.
핵심 코드:
으아아아
전체 코드
프리미티브가 곡선을 따라 고르게 분포되도록 하려면 곡선의 호 길이를 u의 함수로 계산해야 합니다. 그러나 베지어 곡선의 표현은 더 복잡하며 호 길이를 적분하는 것은 다음과 같습니다. 훨씬 더 복잡합니다. 따라서 간격 점을 결정하기 위해 수치적 방법을 사용하는 것이 좋으며, 곡선 위의 각 간격 점의 법선 벡터를 쉽게 얻을 수 있으므로 프리미티브를 곡선에 매핑하기가 쉽습니다.
저는 카이로를 사용해 본 적이 없지만 베지어 곡선에 대해서는 알고 있습니다.
우선 카이로에 베지어 곡선 기능이 포함되어 있다면 말할 필요도 없습니다.
베지어 곡선은 분할 정복 방법을 사용하여 구현할 수 있는 연속 코너 절단과 같은 서브피전 방법을 사용하여 구현할 수 있습니다.
또 다른 일반적으로 사용되는 방법은 드 카스텔자우(de Casteljau) 알고리즘입니다. 이는 컨트롤 스틱에서 선형 보간(슬라이딩)으로 그리는 것입니다. 자세한 내용은 위키를 참조하세요.
그렇습니다. 질문에 답하기 위해 de Casteljau 알고리즘을 사용하여 그리기 프로그램을 작성했습니다.
핵심 코드:
으아아아전체 코드
프리미티브가 곡선을 따라 고르게 분포되도록 하려면 곡선의 호 길이를 u의 함수로 계산해야 합니다. 그러나 베지어 곡선의 표현은 더 복잡하며 호 길이를 적분하는 것은 다음과 같습니다. 훨씬 더 복잡합니다. 따라서 간격 점을 결정하기 위해 수치적 방법을 사용하는 것이 좋으며, 곡선 위의 각 간격 점의 법선 벡터를 쉽게 얻을 수 있으므로 프리미티브를 곡선에 매핑하기가 쉽습니다.