I am encountering difficulties in finding the intersection between a region defined as an elliptical cone and another region. For the time being the other region is a simple InfinitePlane
. I plan to use the intersection region and its boundary to perform all sort of operations on it, such as determine the surface area, curvature, centroid, integrate a signal, etc.
I define the cone as follows
ConusElipsorum[apex_, centrum_, semiMaj_, semiMin_, majVec_,
minVec_, u_, v_] := Module[{e},
e = centrum + semiMaj majVec Cos[u] + semiMin minVec Sin[u]; (* elipsum *)
(1 - v) apex + v e (* conus *)
]
Points apex
and centrum
are the apex of the cone and the center of its base. The semi-axes of the base are semiMaj
and semiMin
and the orientation of the base is given by majVec
along the major axis and minVec
along the minor axis. To make the cone right I choose majVec
to be normal to the unit vector along apex - centrum
and minVec
is given by the right-hand rule between these two vectors.
I define the conic region as
p = {10, 0, 0};
k = {0, 0, 5};
n = Normalize[p - k]; (* vector along cone axis *)
l = Normalize[{0.5, 0, 1}] (* vector normal to cone axis and along major axis *)
m = Cross[n, l] (* vector normal to both cone axis and the major axis *)
pr1 = ParametricRegion[ConusElipsorum[p, k, 5.5, 3, l, m, u, v], {{u, 0, 2 Pi}, {v, 0, 1}}];
the plane region as
pr2 = InfinitePlane[{{0, 0, 0}, {0, 1, 0}, {1, 0, 1}}];
and I plot them with
Show[Region[Style[pr1, Red]], Region[Style[pr2, Blue]]]
I calculate their intersection as
ri=RegionIntersection[pr1, pr2]
that returns
BooleanRegion[#1 && #2 &, {ParametricRegion[{{10 (1 - v) + (0. +
2.45967 Cos[u]) v,
v (0. - 3. Sin[u]), (5. + 4.91935 Cos[u]) v},
0 <= u <= 2 \[Pi] && 0 <= v <= 1}, {u, v}],
ParametricRegion[{{11 (1 - v) + (3. + 2.45967 Cos[u]) v,
1 - v + v (3. - 3. Sin[u]), 1 - v + (8. + 4.91935 Cos[u]) v},
0 <= u <= 2 \[Pi] && 0 <= v <= 1}, {u, v}]}]
This is where I get stuck. I have tried to plot the intersection with Region[ri]
and Mathematica stalls in this cell evaluation. I have read (most of) the Mathematica documentation on manipulating regions to no avail. I believe I am missing something fundamental but I don't know where to start.
Can you help? Thank you.
B