>  기사  >  백엔드 개발  >  선이 어떤 방식으로든 다각형을 통과하는지 확인

선이 어떤 방식으로든 다각형을 통과하는지 확인

王林
王林앞으로
2024-02-09 21:45:04946검색

선이 어떤 방식으로든 다각형을 통과하는지 확인

질문 내용

이미지(곧 비디오 프레임이 될 예정)에서 두 점 사이의 경로를 찾을 수 있는 프로그램을 만들고 있습니다. 제가 하는 일은 다각형 개체를 사용하여 경로 사이의 장애물을 식별하고 해당 다각형 개체를 사용하여 필요에 따라 돌아다니는 것입니다. 내 코드는 다음과 같습니다:

으아아아

현재 저에게 유일한 장애물은 직사각형, 정사각형, 원 등과 같은 단순한 모양을 사용하는 것입니다. 모든 것이 잘 작동하면 동영상 사용으로 전환하겠습니다. 문제는 두 부분이 직사각형의 대각선일 때 getpolygonsinway 中的列表理解中的 line.crosses(polygon) 함수가 false를 반환할 때 발생합니다. 문서를 살펴봤지만 이 사례를 올바르게 캡처하고 있는지 확인하기 위해 무엇을 사용해야 할지 몰라서 여기에 질문을 드립니다.

편집: 요청에 따라 샘플 다각형, 시작 및 끝점은 다음과 같습니다.

으아아아

위 코드를 사용하면 실행 후 다음 경로를 얻게 됩니다 getshortestpath(getpaths(start, end, polygons, [])): [(440, 35), (411, 182), (210, 335), (90, 600)][(440, 35), (411, 182), (210, 335), (90, 600)]


正确答案


我找到了 line.within(polygon) 方法,该方法检查该线是否位于传递的多边形内部。我不知道为什么我以前没有看到它,但现在我看到了。通过在列表理解 if 条件中执行 line.crosses(polygon) 或 line.within(polygon)

정답

🎜🎜 선이 전달된 다각형 내부에 있는지 확인하는 line.within(polygon) 메서드를 찾았습니다. 이전에는 왜 보지 못했는지 모르겠지만 지금은 봅니다. 조건이 있는 경우 목록 이해에서 line.crosses(polygon) 또는 line.within(polygon)을 수행하여 직사각형 주위의 경로를 얻을 수 있었습니다. 이제 다른 기본 모양을 사용하여 테스트한 다음 무한히 용도를 테스트하겠습니다. 🎜

위 내용은 선이 어떤 방식으로든 다각형을 통과하는지 확인의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제