2012-03-26 3 views
1

누구나 래스터에서 앤티 앨리어스 (부드러운) 2 차 베 지어 곡선을 그리기위한 알맞은 알고리즘을 알고 있습니까? 간단히 벡터로 그려서 이미지를 래스터로 복사 할 수 있습니다.래스터에서 앤티 앨리어싱 된 베 지어 곡선을 그리는 방법은 무엇입니까?

커브를 픽셀에 직접 그릴 수있는 현명한 아직 자유롭게 사용할 수있는 알고리즘이 있습니까? 현재 구현 된 알고리즘을 사용하고 있습니다 : http://www.bytearray.org/?p=67quadrobegeier() 앤티 앨리어싱 베 지어를 렌더링하도록 변경하는 방법이 있는지 궁금합니다. 미리 감사드립니다.

학습 목적으로이 작업을하고 있는데 셰이프 옵션의 복사 픽셀을 사용하는 것보다 빠릅니다. 다음은 없음 부드러운 베 지어를 보여주는 예는 정규 베 지어보다 빠른입니다 : http://lab.generalrelativity.org/raster/

+0

은 후 처리 기능에 대한 앤티 앨리어스가 아닙니다. 어쨌든 구현하는 것이 쉽지는 않습니다. 구현을위한 일반적인 검색은 무엇이 관련되어 있는지에 대한 아이디어를 제공해야합니다. 그냥 'draw()'를 사용하십시오 – divillysausages

답변

4

자신의 알고리즘을 구현하는 것은 거의 확실 bitmapData.draw(shape)를 사용하는 것보다 속도가 느려질 수 있습니다.

graphics.lineTo, graphics.curveTo 등을 사용하면 실제로는 아무것도 그리지 않지만 모델을 구성하고있는 것입니다. 모양이 스테이지에 추가되고 이후 [render] 단계에서 모델이 통과되고 C로 작성된 빠른 알고리즘에 의해 그려지는 픽셀 인 경우 bitmapData.draw을 사용하여 벡터를 비트 맵에 그릴 때 동일한 패턴이 사용됩니다 네이티브 코드. 그래서 당신이 상상할 수있는 것처럼 당신이 두 번 아무것도 그리는 것과 같지 않습니다. AS3만으로 처음부터 아무 것도 구현하지 않으면 속도가 느려지거나 불가능할 것입니다.

+1

나는 (속도를 위해) 몇 가지 테스트를 실행했고 당신의 말이 맞다는 것을 알았습니다. 또한 베 지어를 그리는 알고리즘이 어떻게 작동하는지 알아 냈습니다. 철저한 설명 주셔서 감사합니다. – zehelvion

관련 문제