Rotating an entire axes in Matlab Guide
95 次查看(过去 30 天)
显示 更早的评论
I am currently trying to rotate an entire axes named axes1.
imr=imrotate(img,30);
axes(this.gui_h.axes1);
imshow(imr,'Parent',this.gui_h.axes1);
The code above initiates a rotation of 30 degrees. However, the image is rotated but not the entire axes1. I have tested guide tools such as the rotate3D, however rotate3D does not work successfully for 2d images. I have also tried
set(handles.axes1,'Rotation',-25); ,
which has no effect. It simply overlooks the statement and continues with the other tasks. Is there a way to rotate the entire axes?
0 个评论
回答(2 个)
Jan
2017-2-26
编辑:Jan
2017-2-26
image(rand(100, 100, 3));
view(30, 90);
This rotates the "view", the camera the user "is looking through". Alternative:
AxesH = gca;
UpVector = [-sind(30), cosd(30), 0];
DAR = get(AxesH, 'DataAspectRatio');
set(AxesH, 'CameraUpVector', DAR .* UpVector);
For set(gca, 'Rotation', -25) I get an error message:
Error using matlab.graphics.axis.Axes/set
There is no Rotation property on the Axes class.
2 个评论
Jan
2017-2-27
Images are displayed in the standard view only. You can use some of this tools, to display images even in 3D:
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!