2012-11-05 3 views
0

스캔 라인 알고리즘을 적용하여 임의로 생성 된 대륙 같은 모양을 채 웁니다. 내가 가지고있는 주된 문제는 선이 팁 인 점과 교차 할 때입니다. 이 이미지를 시각화하는 데 도움이되는 몇 가지 이미지를 만들었습니다.스캔 라인 채우기, 교차점과 피크를 구별

나는 기본적으로 교차점은 "팁"인지 아닌지 구별하는 방법을 알아내는 데 도움이 필요

http://i.stack.imgur.com/RACF1.png

http://i.stack.imgur.com/OlbI5.png

. 첫 번째 이미지 에서처럼 두 가지 모두 팁이기 때문에 라인이 대륙의 바깥에 있지만 선들 사이에 선이 생깁니다.

+1

두 번째 이미지는 무엇입니까? 현재 무엇을 얻고 있습니까? – thatidiotguy

+0

두 번째 이미지와 함께 첫 번째 파란색 점에서 마지막 파란색 점까지 선을 그립니다. 그래서 내부 부품을 채우지 만 외부 세그먼트도 채워지기 전에 채워집니다. – user1801501

+0

선이 단지 픽셀 인 경우 망설입니다. 홍수로 채워야합니다. 선이 다각형 표현의 일부인 경우 해당 다각형의 단일 정점이 두 모서리가 교차하는 교차점을 나타냅니다. 아무런 문제도 발생하지 않아야합니다. 두 가장자리가 스캔 라인의 같은면에 있으면 두 가장자리로 처리하십시오. 그렇지 않으면 당신은 그것을 하나로서 취급합니다. – paddy

답변

1

교차로의 왼쪽과 오른쪽을 확인하십시오. 둘 다 빨간 줄보다 아래에 있으면 팁이되는 것보다.

줄을 정의하는 방법에 대해 알지 못해서 할 수있는 최선의 방법입니다.

+0

선은 모양의 최상위 점에서 시작하여 두께가 1 픽셀입니다. 나는 이미지의 왼쪽에서 오른쪽으로 한 라인을 그리고 모든 교차점을 보았습니다. 그런 다음 교차점을 사용하여 내부를 채우기 위해 선을 그립니다. 그 후, 모양의 가장 낮은 지점에 도달 할 때까지 동일한 프로세스를 반복 할 때까지 한 픽셀 아래로 이동합니다. – user1801501

+0

@ user1801501 물론 선이 픽셀 단위로 정의되어 있다면 네가 왼쪽으로 한 픽셀을 봐야 할 것입니다. 한 픽셀 오른쪽으로. –