죄와 cos를 사용하여 평면을 가로 질러 원을 만들려고합니다. 그것이 x, y 또는 z 축과 정렬 될 때 모든 것이 잘 작동하지만, 나는 좀 더 역동적 인 것이 필요합니다. 평면 벡터를 3D 벡터로 변형시키는 방법이 있습니까? 나는 당신의 질문이 있어요 경우2D 벡터에서 3D 벡터
0
A
답변
1
당신은 그래서
0
MathOverflow.을 확인 할 수 있습니다, 오른쪽, 당신은 직접 축 중 하나를 직면하지 않는 3D 공간에서 원을 그리려고? 이를 수행하는 방법은 먼저 정상적인 3D 벡터를 중심으로 사용하고 그 둘레에 2D 방식으로 원을 그리는 것입니다. 그래야 여전히 3 번째 좌표를 무시하고 축 중 하나를 마주 보게됩니다. 원을 회전 시키려면 회전 행렬을 사용하여 원을 생성하는 점에 적용해야합니다. 이를위한 수학은 다음과 같습니다
raw_point = Center + (cos(angle)|sin(angle))
[raw_point.x] [1][0 ][0 ] [cos(YRotation)][0][-sin(YRotation)] [cos(ZRotation)][-sin(ZRotation)][0]
3DPoint = [raw_point.y] * [0][cos(XRotation)][-sin(XRotation)] * [0 ][1][0 ] * [sin(ZRotation)][cos(ZRotation) ][0]
[raw_point.z] [0][sin(XRotation)][cos(XRotation) ] [sin(YRotation)][0][cos(YRotation) ] [0 ][0 ][1]
(브라켓 블록 매트릭스이다)
는 방법 (회전 -) 일이 위키 피 디아에를 찾아 매트릭스의 추가 설명이 필요합니다. Btw. Java와 같은 코드 언어에서이 메서드를 사용하려면 먼저 행렬의 수학을 포함하는 클래스를 만들어야합니다. 필자는 차원 기반 문제가 한 번만 발생했기 때문에 필자에게 이러한 사실을 꼭 알려줄 수 있습니다.
관련 문제
- 1. Java에서 2D/3D 세계를위한 벡터
- 2. 벡터에서 요소를 제거하십시오. 벡터
- 3. WPF : 2D 벡터 회전
- 4. Python의 2D 벡터 프로젝션
- 5. 2D 벡터 배열 만들기
- 6. 2D 벡터 이동 방법
- 7. matplotlib의 3D 벡터 필드
- 8. C++에서 벡터에서 포인터 벡터 가져 오기
- 9. 두 번째 벡터에서 벡터 요소 찾기
- 10. 클래스의 동적 2D 벡터 선언
- 11. WPF 2D 벡터 그래픽 라이브러리
- 12. C++ 2D 벡터 및 연산
- 13. 3D 모델을 2D 이미지로 변환
- 14. DirectX의 3D 및 2D 디스플레이
- 15. CUDA 2D, 3D 스레드 블록
- 16. 2D 이미지를 3D 모델로 변환
- 17. 2D 이미지에서 3D 이미지 얻기
- 18. 2D 평면을 3D 큐브로 확대
- 19. 원근감있는 3D 물체의 2D 각도 계산
- 20. 다차원 벡터
- 21. 2D 오브젝트를 3D 공간에 맵핑하면서 2D 크기 유지
- 22. 벡터에서 Find_if 함수
- 23. 2D 및 3D 컨텍스트를 사용하는 캔버스 3D 드로잉
- 24. 방향 및 속도가있는 2D 벡터 수학
- 25. 벡터 기반 2D 플랫폼에서의 충돌 감지
- 26. C++ 2d 벡터 "for"루프 내에서 발행
- 27. WPF가 필요한 이유 (2D 벡터 그래픽 API로)
- 28. 3D + 2D 그래픽으로 QGLWidget 다시 그리기
- 29. 2D 스프라이트를 통한 Direct3D 3D 그래픽
- 30. 3D 메쉬에서 2D 횡단면 폴리곤 생성
그래, 아마도. – Alex