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 CenterFile Exchange에서 Graphics Object Programming에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by