2012-12-29 2 views
4

기존 다각형을 어떻게 수정합니까? 처음에는 Point를 그 외장에 추가하고 싶습니다.Shapely : 기존 다각형에 새로운 점을 추가하십시오.

poly = Polygon([(0, 0), (1, 1), (1, 0)])

나는 이런 식으로 뭔가를 찾고 있었다 :

poly.append_at(idx=3, Point(1, -1))

하지만이 일을위한 어떤 경우에도 유사한 방법을 찾을 수 없습니다.

감사

답변

8

그것은 당신이 어쨌든 등 poly.area, poly.length을 다시 계산 싶어하기 때문에하는 Polygon의 외부에서 포인트를 추가하거나 제거 할 수 이해가되지 않습니다. 대신, 기존의 다각형의 좌표에서 새 Polygon 인스턴스를 생성 :이 poly.interior에 점을 고려하지 않는

coords = poly.exterior.coords[:] 
coords[1] = (2.0, 6.0) # coordinate to change 

new_poly = Polygon(coords) 

참고.

+0

당신의 예제를 만들기 위해 coordinate slice 슬라이스 '[:]'가 추가되었습니다. –

+0

@MikeToews : 아래에 귀하의 의견을 전하십시오. (지금 삭제 될 수도 있습니다.) "불변"이라고 이해하지만 문서의 바로 다음 문장에 "그들의 부모 피처는 새로운 좌표 시퀀스를 할당 할 수 있다는 점에서 변경 가능합니다. " 그게 내가하려는 일이고, 새로운 순서를 지정하는거야. 내가 아는 한, 새로운 좌표 시퀀스 **가 ** 영역, 중심 등의 재 계산을 유발했을 수도 있습니다. 그래서 나는 문서가 그 점을 약간 오도하는 것 같아요. – subnivean

+0

@subnivean이 동의했다. 매뉴얼에있는이 광고문은 분명하지 않다. https://github.com/Toblerity/Shapely/issues/38 –

관련 문제