此代码用于汇总一组平面,这些平面加起来是一半椭圆体。然后我将它乘以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'
})
答案 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);