MATLAB: Setting camera properties on axes is not working as I’m expecting

axes

Hi,
I'm trying to display a model consisting of many planes. I'm using 'surf' to draw these planes. Similar to this:
for k = 1:100
X_k = X(K); % Similar for other vars
hold on; surf(X_k,Y_k,Z_k,C_k,'FaceColor','texturemap','EdgeColor','none');
hold off;
end
After the loop I try to set the axes camera properties, simlar to this:
set(gca,'CameraPosition', center(1:3), 'CameraPositionMode', 'manual', ...
'CameraTarget', target(1:3), 'CameraTargetMode', 'manual', ...
'CameraUpVector', up(1:3), 'CameraUpVectorMode', 'manual', ...
'CameraViewAngle', viewangle, 'CameraViewAngleMode', 'manual');
drawnow;
If I get the parameters from the axes again, by using get(gca, … I don't get the same value as I just have set.
Why is that? Is something being automatically calculated for me? What I notice is, that camera position and target has changed.

Best Answer

I think the problem has to do with the axes limits or data aspect ratio to do. Fixing those seems to solve the problem.
@Daniel: Thank you for your input. It helped a lot.