특정 상황에 대한 솔루션이 필요합니다. 기본적으로 선분에서 작동하는 알고리즘이 있습니다. 나는 선분 끝과 시작점 만 알고있다. (점은 2 좌표 x, y를 가지며 이미지의 픽셀 포인트이며 이미지의 크기를 알 수 있습니다.)이 선분을 검사하여 그 위에 무엇인가 할 수 있습니다. 그러나, 나는 또한 같은 선분을 다시 검사하지 않도록 검사 된 선분을 추적해야합니다. 저는 C++을 사용하고 있습니다. 그래서 stl set container를 사용하고 싶습니다.두 개의 가능한 인덱스가있는 집합에 요소 저장
제 질문은 어떻게이 선분을 끝점과 시작점에 따라 저장할 수 있습니까? 끝점과 시작점에 대해 고유 번호를 생성해야합니다. (또한 다른 조언을 위해 stl set을 사용하는 것 이외에는 열려 있습니다.)
하나의 가능한 해결책은 다음과 같이이 두 픽셀에 대한 인덱스 번호를 생성한다는 것입니다. (y * image-> Witdh) + x. 그런 다음 두 개의 인덱스 번호를 얻습니다 (정수에 따라). 그런 다음이 숫자를 연결합니다. (indexStart < < 32) + indexEnd (두 번 얻음). 이제 고유 번호가 생기고 세트에 쉽게 저장할 수 있습니다. 그러나 문제는 내 검색 중에 라인 세그먼트의 시작점이 같은 선분의 끝점이 될 수 있다는 것입니다. 끝점에서 동일한 선분을 발견하면 연결된 선분 고유 번호는 (indexEnd < < 32) + indexStart가됩니다. 그런 다음 피할 필요가있는 내 세트 컨테이너에 동일한 선분을 추가합니다.
어떤 조언을 주셔서 감사합니다.
세그먼트로가는 것이 무엇인지 알지 못했습니다. 그러나 작업을 위해 세그먼트 트리와 같은 특수 트리를 고려할 수 있습니다 (설명 : http://wwwisg.cs.uni-magdeburg.de/ag/lehre/SS2009/GDS/slides/S11.pdf 또는 http : /en.wikipedia.org/wiki/Segment_tree) –