@@ -145,19 +145,25 @@ function updateScene(obj, dataIndex)
145
145
[xSource , ~ ] = findSourceAxis(obj , axIndex );
146
146
scene = eval( sprintf(' obj.layout.scene%d ' , xSource ) );
147
147
148
+ position = axisData .Position ;
148
149
aspectRatio = axisData .PlotBoxAspectRatio ;
149
150
cameraPosition = axisData .CameraPosition ;
150
151
dataAspectRatio = axisData .DataAspectRatio ;
151
152
cameraUpVector = axisData .CameraUpVector ;
152
153
cameraEye = cameraPosition ./ dataAspectRatio ;
153
-
154
+ normFac = abs(min(cameraEye ));
155
+
154
156
try
155
- normFac = 0.42 - 0.105 * (size(axisData .Layout .TileSpan , 2 ) - 1 );
156
- normFac = normFac * abs(min(cameraEye ));
157
+ fac = size(axisData .Layout .TileSpan , 2 );
157
158
catch
158
- normFac = 0.42 * abs(min( cameraEye )) ;
159
+ fac = 1 ;
159
160
end
160
161
162
+ r1 = range([ 1 , prod(aspectRatio([1 ,2 ])) ]);
163
+ r2 = range([ 1 , prod(aspectRatio([1 ,3 ])) ]);
164
+ r3 = range([ 1 , prod(aspectRatio([2 ,3 ])) ]);
165
+ r = max([r1 , r2 , r3 ]);
166
+
161
167
% -------------------------------------------------------------------------%
162
168
163
169
% -aspect ratio-%
@@ -166,9 +172,9 @@ function updateScene(obj, dataIndex)
166
172
scene.aspectratio.z = 1.0 * aspectRatio(3 );
167
173
168
174
% -camera eye-%
169
- scene.camera.eye.x = cameraEye(1 ) / normFac ;
170
- scene.camera.eye.y = cameraEye(2 ) / normFac ;
171
- scene.camera.eye.z = cameraEye(3 ) / normFac ;
175
+ scene.camera.eye.x = cameraEye(1 ) / normFac * ( 1.4 + r * fac ) ;
176
+ scene.camera.eye.y = cameraEye(2 ) / normFac * ( 1.4 + r * fac ) ;
177
+ scene.camera.eye.z = cameraEye(3 ) / normFac * ( 1.4 + r * fac ) ;
172
178
173
179
% -camera up-%
174
180
scene.camera.up.x = cameraUpVector(1 );
@@ -422,7 +428,8 @@ function updateScene(obj, dataIndex)
422
428
423
429
424
430
function scaleFactor = getScaleFactor(xData , uData , nSteps )
425
- xStep = max( abs(diff( mean(xData , 1 ) )) );
431
+
432
+ xStep = max( abs(diff( mean(xData(: ,: ,1 ), 1 ) )) );
426
433
uStep = max(abs(uData(: )));
427
434
428
435
scaleFactor = 0.8 * xStep / uStep ;
0 commit comments