Creating Sphere using Cuboids of varying size
3 次查看(过去 30 天)
显示 更早的评论
I want to make a sphere using cuboids. The radius of the sphere is 60 mm and I want to divide this whole radius in 12 units so that a single unit has a fixed size of 5mm (a single unit represents a cuboid of size, 5 mm x 5mm x 5mm). Each cuboid unit has its center fixed at some point along the radius. Now, within this unit, the size of the cuboid is varied according to value of b having the same center as previous cuboid (but the current size will be less because of varying cuboid size so that no overlapping between two cuboids). The size of the cuboid (b) is governed by the equation as;
b=5.698-16457*exp(-a/0.11)-8.373*exp(-a/1.092),
where the values of a is varied from 1 to 2 with a step of 0.1. I need a MATLAB code for this problem statement. What appraoch should be used? Thanks in advance.
采纳的回答
Walter Roberson
2021-3-3
%assume center at xc, yc, zc
dx = sidelength/2;
%Left/Right, Front/Back, Down/Up
vertices = [
-1, -1, -1 %LFD 1
-1, -1, +1 %LFU 2
-1, +1, -1 %LBD 3
-1, +1, +1 %LBU 4
+1, -1, -1 %RFD 5
+1, -1, +1 %RFU 6
+1, +1, -1 %RBD 7
+1, +1, +1 %RBU 8
]
faces = [
1 5 7 3 %bottom
and so on to list the other faces
]
This describes a cuboid centered at 0 0 0 and sidelength 1.
Now multiply vertices by sidelength/2 and add xc to the first column, yc to the second column, zc to the third column, and the resulting set of vertices will describe a cube centered at xc, yc, zc, with the desired side length.
You can then patch() it with 'Faces', faces, 'Vertices', vertices
2 个评论
Walter Roberson
2021-3-7
I just realized the above cube has side lengths 2 rather than 1 like I said, but the scale factor I said earlier should still be correct
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!