Rotate the 3D point data about Z axis , and // OX OY

4 ビュー (過去 30 日間)
ha ha
ha ha 2018 年 11 月 24 日
コメント済み: Uriel Angel 2021 年 3 月 3 日
Let's say: I have matrix A=[x y z] with ~60.000 point data . Please see attachment file, and figure:
Question: How can I rotate the 3D point data about Z axis , and // OX OY (as illustration)? Additional, we don't know the rotation angel. I do hope the result will be like below figure.

採用された回答

Bruno Luong
Bruno Luong 2018 年 11 月 24 日
編集済み: Bruno Luong 2018 年 11 月 24 日
xyz=load('data.txt');
xyzc = mean(xyz,1);
xyzr = xyz - xyzc;
[~,~,V] = svd(xyzr,0);
% Rotate 90°: so that the long size // to y_axis
V = V*[0 -1 0;
1 0 0;
0 0 1];
xyzr = xyzc + xyzr*V;
close all
hold on
plot3(xyz(:,1),xyz(:,2),xyz(:,3),'.b');
plot3(xyzr(:,1),xyzr(:,2),xyzr(:,3),'.r');
axis equal
xlabel('x')
ylabel('y')
zlabel('z')
view(3)
  2 件のコメント
ha ha
ha ha 2018 年 11 月 24 日
Thanks @Bruno Luong. I follow your code. But there are small error as the below figure. Do you know how to correct it?
Untitled.png
Uriel Angel
Uriel Angel 2021 年 3 月 3 日
Excellent!!!
Really thank you very much!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeGraphics Object Programming についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by