>

우리는 직사각형의 모양과 측면을 결정하지 않는 숫자를 가진 두 번째 모양을 만들고 내부 모양 (예 : 도넛 스타일)을 가질 수있는 알고리즘을 가지고 있으며 목표는 사각형이 포함될 수 있는지 확인하는 알고리즘을 만드는 것입니다 기하학적 형태로.

이 프로그램은 파이썬으로되어 있으며 매끄럽게 사용됩니다. 처음에 우리는 영역을 테스트하고 직사각형의 영역이 모양에 포함될 수 있다면 그냥 중앙에 놓고 테스트합니다. 들어 가지 않으면 1도 회전하고 (예를 들어) 테스트를 계속합니다. 180 도가 지나면 회전을 멈추고 (예를 들어) spriral 모양으로 1 센티미터에서 움직입니다 (기하학적 모양의 무게 중심 주위의 모든 위치를 만들기 위해).

이 프로그램은 잘 작동하지만 어떤 형태의 경우 삼각법 전문가가 아닌 비교적 느린 (수 분의 계산 시간) 처리 속도를 높이는 데 도움을 요청합니다.

제안이 있습니까?

감사합니다.

느린 예 :

http://image.noelshack.com/fichiers /2018/51/5/1545390818-3dadvwcbpzmewfdbzrm7.png

http://image.noelshack.com/fichiers /2018/51/5/1545390818-htadvwcbpzmewfdbzrq7.png

http://image.noelshack.com/fichiers /2018/51/5/1545390818-ojadvwcbpzmewfdbzqg6.png

http://image.noelshack.com/fichiers /2018/51/5/1545390818-3dadvwcbpzmewfdbzrm7.png

  • 답변 # 1

    회전 된 사각형이 슬라이딩 포인트에 근접한볼록한다각형에 맞는지 알 수 있습니다.

    다각형 정점에 직사각형의 한 모서리 (A)를 놓고 해당 정점의 오른쪽 모서리에 다른 모서리 B (또는 직사각형 모서리가 너무 긴 경우 다음 모서리)를 배치합니다. A 또는 B가 다각형 꼭짓점을 만날 때까지 A를 오른쪽으로 밉니다. C와 D의 궤적이 다각형 가장자리와 교차하는지 확인하십시오. 이 궤적은 직선이거나 사이클로이드와 같은 것일 수 있습니다 (B가 A보다 다른 가장자리에서 미끄러지는 경우). A 또는 B가 다음 정점을 만나는 동안 다음 조각에 대해 반복하십시오. 실패하면 다른 게재 위치도 확인하세요-B-C edge.

    슬프게도이 접근법은 오목 다각형에는 적용되지 않습니다.

  • 이전 python - 다른 셀의 값을 기준으로 조건부로 셀을 채우는 방법
  • 다음 python - 팬더에서 열과 자체 비교