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

4 Ansichten (letzte 30 Tage)
ha ha
ha ha am 24 Nov. 2018
Kommentiert: Uriel Angel am 3 Mär. 2021
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.

Akzeptierte Antwort

Bruno Luong
Bruno Luong am 24 Nov. 2018
Bearbeitet: Bruno Luong am 24 Nov. 2018
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 Kommentare
ha ha
ha ha am 24 Nov. 2018
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 am 3 Mär. 2021
Excellent!!!
Really thank you very much!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Graphics Object Programming finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by