MATLAB代码:凸起平面的总和偏离了两倍。为什么?

时间:2015-06-24 02:10:15

标签: matlab

此代码用于汇总一组平面,这些平面加起来是一半椭圆体。然后我将它乘以2 ...但即使乘以2,它也会给我半椭圆体积。

发生什么事了?你能找到我的错吗? :)

.state('pet', {
  url: '/pet/:petId',
  templateUrl: 'scripts/views/profile/profile.html',
  controller: 'ProfileCtrl'
})
.state('addPet', {
  url: '/pet/add',
  templateUrl: 'scripts/views/profile/edit.html',
  controller: 'ProfileFormCtrl'
})
.state('editPet', {
  url: '/pet/:petId/edit',
  templateUrl: 'scripts/views/profile/edit.html',
  controller: 'ProfileFormCtrl'
})

1 个答案:

答案 0 :(得分:0)

椭圆体中切片的半径不会线性变化 - 这可能是您的问题。我在下面的代码中所做的是根据z位置计算x和y-Radii为弧。请注意,所有内容都可以在x,y和z方向上从单位球面线性缩放。我还“代码化”了代码,以便所有卷都在一行中而不是在for循环中计算。

nSlices = 1e6;
unitSpacing = 1 / nSlices;
unitVector = linspace(0, nSlices, 1 - unitSpacing);
unitArc = sqrt(1 - unitVector.^2);

zSpacing = zRadius * unitSpacing;

xRadii = xRadius .* unitArc;
yRadii = yRadius .* unitArc;

sliceVolumes = zSpacing .* pi .* xRadii .* yRadii;

halfVolume = sum(sliceVolumes);