Đây là một vấn đề toán học Tôi không chắc chắn chính xác làm thế nào để làm. Vectơ không liên kết với trục, vì vậy chỉ cần xoay 90 độ xung quanh x, y hoặc z sẽ không nhất thiết phải cung cấp cho tôi các trục khác.Cho vector của một trục, làm cách nào để tìm véc-tơ của hai trục khác?
Trả lời
Tôi có thể nghĩ đến một vài trường hợp khác nhau mà bạn có thể hỏi.
Given: Một hệ thống tồn tại trước đó phối hợp
Trong một hệ thống 2D, rìu của bạn/cơ sở luôn
[1,0]
và[0,1]
-x và y trục.Trong một hệ thống 3D, rìu của bạn/cơ sở luôn
[1,0,0]
,[0,1,0]
, và[0,0,1]
-x, y, và z.
Given: Một trục trong một 2D tùy ý-cơ sở phối hợp hệ thống
Nếu bạn có một trục trong một 2D tùy ý-cơ sở hệ tọa độ, trục khác là vector trực giao.
Để xoay một vector trực giao truy cập chiều kim đồng hồ:
[x_new, y_new] = [ -y_old, x_old]
Để xoay một vector trực giao chiều kim đồng hồ:
[x_new, y_new] = [ y_old, -x_old]
Để tóm tắt:
Given: x-axis = [ a, b]
Then: y-axis = [-b, a]
Given: y-axis = [ c, d]
Then: x-axis = [ d, -c]
Given: Hai trục trong một tùy ý-cơ sở 3D phối hợp hệ thống
Để thực hiện điều này, hãy tìm các sản phẩm chéo.
[a,b,c] x [d,e,f] = [ b*f - c*e, c*d - a*f, a*e - b*d ]
Tiếp theo những ba nguyên tắc:
- (x trục) x (y trục) = (z trục)
- (y trục) x (z trục) = (x trục)
- (z trục) x (x trục) = (y trục)
Given: Một trục trong một 3D tùy ý-cơ sở phối hợp hệ thống
Có không đủ thông tin để tìm thấy giải pháp duy nhất vấn đề này là. Điều này là do, nếu bạn nhìn vào trường hợp thứ hai (Một trục trong một hệ tọa độ 2D tùy ý), trước tiên bạn cần phải tìm một vectơ trực giao. Tuy nhiên, có một lượng vô hạn các vector trực giao có thể có với một trục duy nhất trong không gian 3D!
Tuy nhiên, bạn có thể tìm thấy một trong các giải pháp khả thi.
Một cách để tìm thấy một tùy ý một trong những vectơ trực giao bằng cách tìm bất kỳ vector [d,e,f]
nơi:
[a,b,c] = original axis
[d,e,f] = arbitrary orthogonal axis (cannot be [0,0,0])
a*d + b*e + c*f = 0
Ví dụ, nếu trục ban đầu của bạn là [2,3,4]
, bạn muốn giải quyết:
2 * d + 3 * e + 4 * f = 0
Tức là, bất kỳ giá trị nào của [d,e,f]
thỏa mãn điều này là một vectơ trực giao thỏa đáng (miễn là nó không phải là [0,0,0]
). Người ta có thể lựa chọn, ví dụ, [3,-2,0]
:
2 * 3 + 3 *-2 + 4 * 0 = 0
6 + -6 + 0 = 0
Như bạn thấy, một trong những "công thức" mà làm việc đến là [d,e,f] = [b,-a,0]
... nhưng có rất nhiều những người khác có thể làm việc tốt; có, trên thực tế, một vô hạn!
Khi bạn tìm thấy hai bạn trục [a,b,c]
và [d,e,f]
, bạn có thể giảm trở lại này đối với trường hợp trước đó (trường hợp 3), sử dụng [a,b,c]
và [d,e,f]
như x và y rìu của bạn (hoặc bất kỳ trục bạn cần họ để được, ví của bạn vấn đề cụ thể).
Normalization
Lưu ý rằng, khi bạn liên tục làm các sản phẩm và các sản phẩm chấm chéo, vectơ của bạn sẽ bắt đầu phát triển lớn hơn và lớn hơn. Tùy thuộc vào những gì bạn muốn, điều này có thể không được mong muốn. Ví dụ: bạn có thể muốn các vectơ cơ sở của mình (các trục tọa độ) cho tất cả đều có cùng kích thước/chiều dài.
Để bật bất kỳ vector (trừ [0,0,0]
) vào một vector đơn vị (một vector với chiều dài 1, theo hướng tương tự như các vector gốc):
r = [a,b,c]
v = Sqrt(a^2 + b^2 + c^2) <-- this is the length of the original vector
r' = [ a/v , b/v , c/v ]
đâu r'
đại diện cho đơn vị vector của r
- một véc tơ có độ dài 1 điểm theo cùng một hướng với r
. Một ví dụ:
r = [1,2,3]
v = Sqrt(1^2 + 2^2 + 3^2) = Sqrt(13) = 3.60555 <-- this is the length of the original vector
r' = [0.27735, 0.55470, 0.83205]
Bây giờ, nếu tôi muốn, ví dụ, một vector trong cùng một hướng của r
với chiều dài 5, tôi chỉ đơn giản là nhân ra r' * 5
, đó là [a' * 5, b' * 5, c' * 5]
.
Bạn đang nói về một hệ thống 3coordinate điển hình như hệ thống được sử dụng trong công cụ 3D?
Chỉ với một véc tơ bạn không thể tìm thấy hai thứ kia, thông tin duy nhất bạn sẽ có nó trên mặt phẳng mà chúng nằm .. nhưng chúng có thể ở bất kỳ góc nào nếu chúng vuông góc với một vector duy nhất bạn có.
Chỉ có một trục là không đủ, vì vẫn còn một số lượng vô hạn các trục có thể nằm trong mặt phẳng vuông góc.
Nếu bạn quản lý để có được một trục khác, bạn có thể sử dụng sản phẩm chéo để tìm thứ ba.
Làm thế nào có thể đúng là "Chỉ có một trục là không đủ" khi bạn ngay lập tức nói rằng có vô số vectơ phù hợp và trong đoạn tiếp theo của bạn nói làm thế nào để tiến hành cho rằng một vector phù hợp đã được tìm thấy? – sigfpe
Đừng làm cho tôi liên kết đến mục nhập trên "if" tại dictionary.reference.com ... –
Nếu bạn có một véc tơ (x, y, z), bạn có thể nhận được một vectơ vuông góc với nó như (y, -x, 0) (dot-product là x yy x + 0 * z = 0)
Sau đó, bạn lấy sản phẩm chéo của cả hai để có được vectơ vuông góc còn lại: (x, y, z) × (y, -x, 0) = (0y + zx, yz-0x, -x²- y²) = (zx, yz, -x²-y²)
- 1. Cách nhân rộng giá trị của trục Y trên cả hai mặt của trục trong Highcharts
- 2. Làm thế nào để lặp lại các phần tử của một mảng dọc theo hai trục?
- 3. Xoay UIView trên trục X của nó (Trục ngang)
- 4. Làm cách nào để cho âm mưu matplotlib của tôi vượt ra ngoài các trục?
- 5. Hai vảy trên cùng một trục
- 6. Hai trục y trong biểu đồ cốt lõi có các trục khác nhau
- 7. Tìm trục trung gian của đa giác bằng C#
- 8. Làm thế nào để tắt các dấu tích và nhãn hiệu của một trục matlibplot?
- 9. Làm cách nào để làm cho trục y giao nhau với trục x ở 0 trong ggplot2?
- 10. Trong Matlab làm cách nào tôi có thể trao đổi trục ngang và trục dọc của ô hiện có
- 11. Làm thế nào để làm cho một trục chiếm nhiều subplots với pyplot (Python)
- 12. Thành phần của vòng quay quaternion quanh trục
- 13. Làm cách nào để thêm nhãn trục thứ hai trong ggplot2?
- 14. pyplot trục nhãn cho subplots
- 15. Trong matplotlib, làm thế nào để bạn hiển thị một trục trên cả hai mặt của hình?
- 16. Highchart - thay đổi màu của một nhãn x trục chỉ
- 17. Làm thế nào để bạn cung cấp nhãn cho trục của biểu đồ Lõi cốt lõi?
- 18. JQuery-Flot: Cách thêm nhãn văn bản cho trục Y và nhãn ngày cho trục X?
- 19. Làm thế nào để làm phẳng trục của một mảng đa chiều mà không tạo bản sao trong NumPy?
- 20. PHP Array.length cho mảng hai chiều (trục y)
- 21. Khoảng cách giữa nhãn trục và trục trong hình MATLAB
- 22. Flip NSImage trên cả hai trục
- 23. Cách thêm trục x thứ hai vào matplotlib
- 24. Tại sao nhãn trục Y của tôi xuất hiện trên trục? JQM
- 25. Làm cách nào để ghi đè định dạng trục của ggplot2?
- 26. Tăng số lượng dấu trục
- 27. CSS: Thanh cuộn cho trục y khiến thanh cuộn cho trục x
- 28. Làm thế nào để xoay các nhãn trục trong ggplot2?
- 29. HighCharts - hai trục Y, một với giá trị lớn nhất
- 30. Loại bỏ các mép của trục trong ô 3D
Nếu anh ấy sử dụng phần mềm mô phỏng hoặc trò chơi, anh ấy có thể xoay đối tượng, điều này sẽ giúp việc tìm kiếm hai trục khác đủ dễ dàng. – LanceH
Câu hỏi là trung thực khá mơ hồ =/ –
Vì vậy, tóm lại sau đó Justin: Đầu tiên bạn sử dụng quy tắc sản phẩm chấm rằng hai vectơ trực giao có một sản phẩm dấu chấm bằng không, để lấy trục thứ hai. Sau đó sử dụng sản phẩm chéo của hai trục này để lấy trục thứ ba. Tôi hiểu tất cả điều này. Câu hỏi duy nhất tôi có là làm thế nào để bạn có được trục trực giao tùy ý nói vectơ của {4.418020, -6.474061, -6.210284} – Stoff81