rotate 3D data

2 views (last 30 days)
Lotte Piek
Lotte Piek on 18 Oct 2023
Commented: Star Strider on 18 Oct 2023
I have a geometry that consists of contours of xyz data points, I want to allign it in such a way that the inlet(left side) is perpendicular to the z axis so that the lenght of the geometry is along the z-axis. Can anybody help?
Thanks!
  2 Comments
Dyuman Joshi
Dyuman Joshi on 18 Oct 2023
How is your question related to MATLAB?
Do you attain the figure by MATLAB code? If so, then provide the code and relevant data used.
Lotte Piek
Lotte Piek on 18 Oct 2023
Edited: Lotte Piek on 18 Oct 2023
for i=101:171;
plot3(dab.SegmentInfo(i).branch1(:,1), dab.SegmentInfo(i).branch1(:,2),dab.SegmentInfo(i).branch1(:,3)); hold on; --> blue in image
plot3(dab.SegmentInfo(i).branch2(:,1), dab.SegmentInfo(i).branch2(:,2),dab.SegmentInfo(i).branch2(:,3)); hold on; --> green in image
end;
for i = 173:435
plot3(dab.SegmentInfo(i).main(:,1), dab.SegmentInfo(i).main(:,2),dab.SegmentInfo(i).main(:,3)); --> black in image
end
Colours in the figure are after the line, so the data consists of three parts and these consist of countours (xyz values for the points in the contours)

Sign in to comment.

Accepted Answer

Star Strider
Star Strider on 18 Oct 2023
Use the rotate function. It will likely require a bit of experimenting to get it the way you want it.
Example —
imshow(imread('ask.png'))
title('Question Image')
x = 0:0.01:2*pi;
y = sin(8*x);
z = cos(8*x);
figure
hp = plot3(x, y, z);
grid on
xlabel('x')
ylabel('y')
zlabel('z')
axis('square')
title('Original')
figure
hp = plot3(x, y, z);
grid on
xlabel('x')
ylabel('y')
zlabel('z')
axis('square')
rotate(hp,[0 1 0],90)
title('Rotated')
.
  2 Comments
Lotte Piek
Lotte Piek on 18 Oct 2023
thanks, will give it a try!
Star Strider
Star Strider on 18 Oct 2023
As always, my pleasure!

Sign in to comment.

More Answers (0)

Products


Release

R2023b

Community Treasure Hunt

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

Start Hunting!