Creating Sphere using Cuboids of varying size
3 views (last 30 days)
Show older comments
RAHUL JAISWAL
on 22 Feb 2021
Commented: Walter Roberson
on 7 Mar 2021
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.
2 Comments
Accepted Answer
Walter Roberson
on 3 Mar 2021
%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 Comments
Walter Roberson
on 7 Mar 2021
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
More Answers (0)
See Also
Categories
Find more on Interpolation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!