축이 정렬되지 않은 상자가있는 경우 내부에 점이 있는지 가장 쉽게 확인할 수 있습니까? (나는 three.js를 사용하고 있기 때문에 거기에서 어떤 유틸리티도 도움이 될 수 있습니다 .Sub.js는 테두리 상자 개념을 포함하고 있지만 축 정렬 경계 상자입니다.)포인트가 상자 안에 있는지 확인하는 방법 (three.js)?
답변
상자가 THREE.BoxGeometry 인 경우 v
를 변환하는 경우 변환 된 내부
- 이
v
및m
- 검사 역으로 상자를 변환 : 그것은 당신의 점
v
교차하는 경우는 회전은, 번역 및 조정, 당신은 찾기 위해 변환 행렬m
을 사용할 수 있습니다 상자 (이제 축 정렬 됨) 여기
코드입니다 :
var box = <Your non-aligned box>
var point = <Your point>
box.geometry.computeBoundingBox(); // This is only necessary if not allready computed
box.updateMatrixWorld(true); // This might be necessary if box is moved
var boxMatrixInverse = new THREE.Matrix4().getInverse(box.matrixWorld);
var inverseBox = box.clone();
var inversePoint = point.clone();
inverseBox.applyMatrix(boxMatrixInverse);
inversePoint.applyMatrix4(boxMatrixInverse);
var bb = new THREE.Box3().setFromObject(inverseBox);
var isInside = bb.containsPoint(inversePoint);
그리고 여기 실행중인 데모입니다 https://jsfiddle.net/holgerl/q0z979uy/
이 아닌 축 정렬 상자가 비 정렬에 넣고 어떻게이것은 내 첫 번째 아이디어였다. 이것이 최선의 접근 방법이라면, 그들은 이것을하는 three.js에서 유틸리티 메소드를 만들어야합니다. – croraf
@croraf 좀 더 일반적인 접근 방식으로 나의 대답을 바꾸고 이제는이 코드를 추가했습니다. 이 방법이 효과가 있습니까? –
@HolgerL 초당 240 개체를 불필요하게 인스턴스화합니다. – WestLangley
- 1. 포인트가 타원 안에 있는지 확인하는 방법은 무엇입니까?
- 2. Skobbler지도 안에 포인트가 있는지 확인하는 방법은 무엇입니까?
- 3. 주어진 포인트가 사각형 안에 있는지 알아내는 방법
- 4. 포인트가 폴리 토프 안에 있는지 확인
- 5. 포인트가 직사각형 안에 포함되어 있는지 확인하는 중 오류가 발생했습니다.
- 6. 포인트가 대각선 주위의 직사각형 안에 있는지 확인하는 방법은 무엇입니까?
- 7. 포인트가 지오 펜스 안에 있는지 확인하십시오.
- 8. 포인트가 배열의 경계에 있는지 확인하는 방법
- 9. 포인트가 Quad2DCurve에 있는지 여부를 확인하는 방법
- 10. 포인트가 포인트 클러스터 내에 있는지 확인하는 방법
- 11. 포인트가 삼각형 (2D) 안에 있는지 확인
- 12. 비행기가 Three.js 카메라에 있는지 확인하는 방법 Frustum
- 13. 포인트가 볼록 쿼드 다각형 안에 있는지 또는 가장 위에 있는지 확인하는 가장 효율적인 방법
- 14. 포인트가 OpenLayers 3의 폴리곤 안에 있는지 확인하십시오.
- 15. 포인트가 Raphael.js의 경로 요소 안에 있는지 확인합니다.
- 16. 효율적인 방법으로 포인트가 다이아몬드 안에 있는지 확인하십시오.
- 17. 포인트가 삼각형 (3D) 안에 있는지 확인하기위한 성능
- 18. 포인트가 육각형 내부에 있는지 확인하는 함수
- 19. 포인트가 내부에 있는지 확인하는 방법은 무엇입니까?
- 20. 볼록한 다각형 안에 원이 있는지 확인하는 방법
- 21. 마우스 클릭이 요소 안에 있는지 확인하는 방법
- 22. NSRect 안에 NSPoint가 있는지 확인하는 방법
- 23. 마커가 Google지도에서 다각형 안에 있는지 확인하는 방법
- 24. POINT가 버튼 영역 안에 있는지 확인하는 방법
- 25. 마우스 커서가 컨트롤 안에 있는지 확인하는 방법
- 26. 위도와 경도가 타원 안에 있는지 확인하는 방법
- 27. 포인트가 도로에 있는지 확인
- 28. 포인트가 N 시간보다 빠르게 2D convex 폴리곤 안에 있는지 확인하는 방법
- 29. 포인트가 비대칭 원추형 절두체 내부에 있는지 확인하는 방법
- 30. 포인트가 원호에 있는지 c를 확인하는 가장 좋은 방법 #
? 변형을 사용하고 있습니까? 아니면 그러한 방향으로 명시 적으로 배치 된 형상입니까? – TheJim01
많은 접근법이 있습니다. 무엇이 최선인가 - 그 상자가 어떻게 정의되는지에 달려있다. – MBo
@ TheJim01 상자를 만들고 번역 한 다음 회전합니다. – croraf