2009-09-15 9 views
3

Bresenham의 선 알고리즘이나 그와 유사한 알고리즘을 기반으로 특정 두께의 선을 그릴 알고리즘을 알고 있는지 궁금합니다. 두 번째 생각에 Bresenham 선 알고리즘 (두께)

, 나는 각와 setPixel (x, y)에 그냥 원, 예컨대 :

filledCircle (X, Y, 두께)을 그릴 것에 대해에 대해 궁금했는데; 모든 x, y에 대해서는 물론 매우 느릴 것입니다. 나는 또한 사전을 사용하려고했지만 그것은 시간이 없어 메모리를 채울 것입니다. 동일한 색상을 사용하고 있다면 그릴 픽셀을 확인하십시오.하지만 큰 브러시에는 효과적이지 않습니다.

아마 각도에 따라 반원을 그릴 수 있습니까?

모든 의견을 보내 주시면 감사하겠습니다.

감사합니다.

중복 : 당신은 실제로 선을 따라 원을 그릴 수 없습니다how do I create a line of arbitrary thickness using Bresenham?

+0

단일 픽셀 선은 실제로는 1 픽셀 너비의 직사각형입니다. 더 넓은 선을 그릴 때 다각형 그리기 알고리즘을 사용할 수 있습니다. 이렇게하면 선의 렌더링 방법뿐만 아니라 라인 캡 및 앤티 앨리어싱을 처리하는 방법을 명확히 할 수 있습니다. –

답변

3

. 이 접근법은 patented입니다. :) 당신은 여전히 ​​영감에 대한 특허를 읽을 수 있습니다.

+0

이것은 단지 종이 오른쪽, 의사 알고리즘은 어떨까요? :) –

+31

이 같은 특허는 멍청합니다. 그 사람들은 총격을받을 자격이 있습니다. – ryeguy

+7

특허 웹 사이트에서 (1) 특허 발급일 및 (2) 특허 만료일을 표시하지 않는 점은 무엇입니까? –

2

일반적으로 사용되는 것은 모르겠지만 1 픽셀 너비의 라인에는 Bresenham을 사용할 수 있지만 수직 또는 수평으로 설정된 수의 픽셀만큼 확장 할 수 있습니다. 예를 들어, 선이 가로에서 약 30도 떨어져 있고 너비를 4 픽셀로하고 싶다고 가정합니다. 선의 세로 두께는 5 픽셀이어야한다고 계산합니다. Bresenham을 실행하지만 각 픽셀 (x, y)에 대해 실제로 (x, y), (x, y + 1), ... (x, y + 4)를 그립니다. 그리고 선의 끝을 둥글게하려면 양쪽 끝에 원을 그립니다.

과도 할 경우 스타일러스의 픽셀 맵 (원형 또는 대각선 펜촉 등)을 만든 다음 스타일러스의 각 픽셀에 하나씩 평행 한 Bresenham 선 세트를 그립니다.

2

anti-grain geometry 라이브러리에서 사용되는 것과 같이 픽셀 범위를 계산하는 Bresenhams의 변형이 있습니다. 품질을 원한다면 출력 매체가 무엇인지 말하지 않고, on-off LCDS보다 더 많은 기능을 갖춘 시스템은 두께가있는 펜을 지원합니다.

관련 문제