Get current rotation of a surf plot

55 ビュー (過去 30 日間)
Dale Huffman
Dale Huffman 2017 年 2 月 10 日
コメント済み: Dale Huffman 2017 年 2 月 13 日
Is there a method to get/save the current rotation of a surf plot. We want to rotate a plot (3D), by hand using "rotate3d on", to our desired viewpoint, and then save that rotation to be applied exactly the same to all future plots. I can't seem to find any ".getRotation" type functions or attributes.
  1 件のコメント
Dale Huffman
Dale Huffman 2017 年 2 月 13 日
Thank you all, (Star Strider, Jan Simon, and Jonh BG). All very good and relevant information. I accepted SS's answer because that is the answer that worked for us for now. I spent some time with the campos and RotateStyles, all good info. If I could "accept" all 3, I would. (Let me know if I can - newbie here to these forums) Thank you again.

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

採用された回答

Star Strider
Star Strider 2017 年 2 月 10 日
編集済み: Star Strider 2017 年 2 月 10 日
The view (link) function will do that:
  • [az,el] = view returns the current azimuth and elevation.
EDIT They’re also displayed dynamically in the lower left corner of the figure GUI.
  1 件のコメント
Jan
Jan 2017 年 2 月 12 日
編集済み: Jan 2017 年 2 月 12 日
+1. Or explicitly:
[X,Y,Z] = peaks(25);
figure
hAxes = axes;
surf(X,Y,Z, 'Parent', hAxes);
...
get(hAxes, 'View')
This is the way e.g. rotate3d updates the status text in the lower left corner.

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

その他の回答 (2 件)

John BG
John BG 2017 年 2 月 11 日
campos returns the camera position
for instance, these axes
campos
=
0.500000000000000 0.500000000000000 9.160254037844386
have the point of view on the z axis, at 9.1 above away from x y plane
Have you tried the MATLAB intro example for campos and rotate around a vibrating membrane
surf(peaks)
axis vis3d off
for x = -200:5:200
campos([x,5,100])
drawnow
end
to get right on target
campos([0 0 100])
.
if you find this answer useful would you please be so kind to mark my answer as Accepted Answer?
To any other reader, please if you find this answer of any help solving your question,
please click on the thumbs-up vote link,
thanks in advance
John BG

Jan
Jan 2017 年 2 月 12 日
The answer is not trivial: rotate3d can rotate an object using the view angle or the camera orbit, see the parameter 'RotateStyle'. The DataAspectRatio of the axes object can be skewed, such that the replied angle does not match the visible impression on the screen.
In my experiments, Star Strider's suggestion worked.
  2 件のコメント
Star Strider
Star Strider 2017 年 2 月 12 日
Thank you, Jan!
Jan
Jan 2017 年 2 月 12 日
@Star Stride: You are welcome.

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

カテゴリ

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

製品

Community Treasure Hunt

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

Start Hunting!

Translated by