SuperellipsoidsΒΆ
Learning targets
- Construct SuperEllipsoids as 3D Primitives
This example constructs three different superellipsoids. All three are shown in the following figure as seen from the top and the side. They differ in their xy and xz cross-section. In the middle we observe a circular xy cross section and a diamond shaped xz cross section. The other two have identical xz cross-sections but differ in xy cross-sections.
top view | side view |
.jcm
Input File
The layout.jcm
file contains a Layout3D section indicating the use of 3D primitives. The background is defined first, then the object section with the three objects follows. The SuperEllipsoid
is determined by its radii in all three coordinate directions and two additional exponents. The primitives GlobalPosition
and Rotation
are shared with all 3D primitives.
Note
The radial parameters of the SuperEllipsoid
are self-explanatory . The GlobalPosition
refers to the center of the objects.
layout.jcm [ASCII]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
Layout3D { UnitOfLength = 1.0 Extrusion { Objects { Parallelogram { Priority = -1 DomainId = 101 Height = 5.0 Width = 10.0 GlobalPosition = [0.0, 0.0] MeshOptions { MaximumSideLength = 2.0 } Boundary { Class = Transparent } } } MultiLayer { LayerInterface { BoundaryClass = Transparent ExteriorDomainId = 101 } Layer { Thickness = 5 DomainIdMapping = [101 101] } LayerInterface { BoundaryClass = Transparent ExteriorDomainId = 101 } } } Objects { SuperEllipsoid { Name = "SuperEllipsoid1" DomainId = 5 Priority = 1 RadiusX = 1.0 RadiusY = 1.0 RadiusZ = 1.0 ExponentE = 1 ExponentN = 2 GlobalPosition = [0, 0, 2.5] MeshOptions { MaximumSideLength = .2 } } SuperEllipsoid { Name = "SuperEllipsoid2" DomainId = 5 Priority = 1 RadiusX = 1.0 RadiusY = 1.0 RadiusZ = 1.0 ExponentE = 1.5 ExponentN = 0.8 GlobalPosition = [-3.3, 0, 2.5] MeshOptions { MaximumSideLength = .2 } } SuperEllipsoid { Name = "SuperEllipsoid3" DomainId = 5 Priority = 1 RadiusX = 1.0 RadiusY = 1.0 RadiusZ = 1.0 ExponentE = 2.5 ExponentN = 0.75 GlobalPosition = [3.3, 0, 2.5] MeshOptions { MaximumSideLength = .2 } } } }