Message Boards Message Boards

0
|
930 Views
|
1 Reply
|
1 Total Likes
View groups...
Share
Share this post:

How to quickly check if two parametric surfaces have common points?

Posted 1 year ago

Hi everyone! Can you please help me with a question? There are two Bezier surfaces of the first degree: setA and setB. How can you quickly and unambiguously prove that they intersect (algebraically)? Optional: how can you algebraically define the curve of their intersection? Thank you!

POSTED BY: Aleksandr Miller

Here is a way:

ineq = 0 <= Subscript[u, a] <= 1 && 0 <= Subscript[v, a] <= 1 && 
   0 <= Subscript[u, b] <= 1 && 0 <= Subscript[v, b] <= 1;
FindInstance[setA == setB && ineq,
  {Subscript[u, a], Subscript[v, a], Subscript[u, b], Subscript[v, 
   b]}] // FullSimplify
inters = FullSimplify[setA /.
   Solve[setA == setB && ineq]]
Show[{ParametricPlot3D[{setA, setB},
   {Subscript[u, a], 0, 1}, {Subscript[v, a], 0, 1},
   PlotStyle -> Opacity[.5]],
  ParametricPlot3D[setB,
   {Subscript[u, b], 0, 1}, {Subscript[v, b], 0, 1},
   PlotStyle -> Opacity[.5]],
  ParametricPlot3D[inters[[1]],
   {Subscript[v, b], 0, 1},
   PlotStyle -> Directive[Thickness[.01], Red]]},
 PlotRange -> All]
POSTED BY: Gianluca Gorni
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract