여러 개의 중복되는 사각형의 바깥 쪽 경계를 얻고 싶습니다.인접한 사각형의 경계를 계산하십시오.
주어진 사각형의 이웃을 계산하는 함수를 작성했지만 인접한 사각형의 외부 경계를 얻는 방법이 있는지 알고 싶습니다. E, W, N, S :
def get_neighboring_rectangles (r, rectList):
overlapDict = {}
rminX, rmaxX, rminY, rmaxY = return_bbox_of_rectangle(r)
for rectCheck,ri in rectList:
if r == rectCheck: continue
rcminX, rcmaxX, rcminY, rcmaxY = return_bbox_of_rectangle(rectCheck)
for d in ['E', 'W', 'N', 'S']:
if not ((rcmaxY < rminY or rcminY > rmaxY) or (rcmaxY == rminY) or (rcminY == rmaxY)):
if d == 'W' and rcmaxX == rminX:
if d not in overlapDict: overlapDict[d] = []
overlapDict[d].append((rectCheck,ri))
if d == 'E' and rcminX == rmaxX:
if d not in overlapDict: overlapDict[d] = []
overlapDict[d].append((rectCheck,ri))
if not ((rcmaxX < rminX or rcminX > rmaxX) or (rcmaxX == rminX) or (rcminX == rmaxX)):
if d == 'S' and rcmaxY == rminY:
if d not in overlapDict: overlapDict[d] = []
overlapDict[d].append((rectCheck,ri))
if d == 'N' and rcminY == rmaxY:
if d not in overlapDict: overlapDict[d] = []
overlapDict[d].append((rectCheck,ri))
return overlapDict
상기 프로그램은 각 방향에 대해 이웃 반환 여기
제가 가지고있는 것이다. 여기
이 기능을 포함하는 경우입니다 :기능은 바로 이웃이 무엇 반환하지만 나는 모든 인접 사각형의 외부 경계를 반환하는 기능을 갖고 싶어 :
:이 경우는 입력은 3 개 사각형의 경계의 목록이 될 것입니다
[[(0,0) (7,0) (7,4) (0,4)] [(4,4) (7,4) (7,6) (4,6)] [(1,6) (7,6) (7,10) (1,10)]]
예상 출력 - 또한 [(0,0) (7,0) (7,10) (1,10) (1,6) (4,6) (4,4) (0,4)]
는, 상기 3 개 개의 사각형 접촉되지 않는 네번째 사각형이있을 수 있으므로주의하시기 바랍니다. 네 번째의 경계는 그대로 반환되어야합니다. (나는 이웃 탐색 알고리듬을 사용하여 달성 할 수있다)
나는이 문제에 어떻게 접근 할 수 있을지 조금만 잃었다. 이런 종류의 기능을 가진 Python 라이브러리가 있습니까?
안녕하세요, 예상 출력에 입력을 추가 할 수 있습니까? – Neil
지적 해 주셔서 고맙습니다. 나는 그것을 지금 추가했다. – sanjay