0
$\begingroup$

I have two close curves in space defined by $g$ and $h$ with:

Px[t_, A_, p_] := ((\[Pi] - t) t (p \[Pi] (\[Pi] - 2 t)^2 + 16 A (\[Pi] - t) t))/\[Pi]^4
X[t_, a_, px_] := If[t <= \[Pi], Px[t, a, px], -Px[t - \[Pi], a, px]]

Py[t_, A_, \[Epsilon]_] := ((\[Pi] - 2 t) (256 A (\[Pi] - t)^2 t^2 (9 \[Pi]^2 - 16 \[Pi] t + 16 t^2) + (\[Pi] - 4 t)^2 (3 \[Pi] - 4 t)^2 (3 \[Pi]^2 + 38 \[Pi] t - 38 t^2) \[Epsilon]))/(27 \[Pi]^7)
Y[t_, b_, \[Epsilon]_] := If[t <= \[Pi], Py[t, b, \[Epsilon]], Py[2 \[Pi] - t, b, \[Epsilon]]]

Pz[t_, A_, p_] := ((\[Pi] - 2 t) (\[Pi] - t) t (3 p \[Pi] (\[Pi] - 4 t)^2 (3 \[Pi] - 4 t)^2 + 256 A (\[Pi] - t) t (9 \[Pi]^2 - 16 \[Pi] t + 16 t^2)))/(27 \[Pi]^7)
Z[t_, c_, pz_] := If[t <= \[Pi], Pz[t, c, pz], Pz[t - \[Pi], c, pz]]

g[t_] := {X[t, 2, 1], Y[t, 1, .1], Z[t, 1, 2]}
h[t_] := {-Y[t, 1, .1], X[t, 2, 1], Z[t, 1, 2]}

ParametricPlot3D[{g[t], h[t]}, {t, 0, 2 \[Pi]}]

boundary curves

I would now want to build the minimal surface defined by those boundaries. But I have trouble adapting this solution to a situation where the initial surface is not a Disk[] but an Annulus[].

Is it easy to adapt, or do I miss something topologically sneaky?
How do I construct this minimal surface?

$\endgroup$
5
  • $\begingroup$ Would it be appropriate to ask here how to plot the surface defined by each of these lines in 3D space -e.g the one defined by g[t], or would I need to start a new question? $\endgroup$
    – GerardF123
    Commented Oct 19, 2018 at 12:46
  • $\begingroup$ @GerardF123 I'm not sure I'm getting your point. If you're strictly asking about g[t] then it is not a surface that it defines but a line (the blue one I think). If you need the surface that is an interpolation between h and g, then your answer has been given by Ulrich below. If it is the minimal surface you need, then see this post I've pointed to. Tell me if any of these suit :) $\endgroup$
    – iago-lito
    Commented Oct 19, 2018 at 15:37
  • $\begingroup$ Thanks for your reply. What I was getting at is that g[t] looks to me like the outline of the blade of a propeller of a ship. I wanted to draw that surface in. $\endgroup$
    – GerardF123
    Commented Oct 19, 2018 at 16:01
  • $\begingroup$ @GerardF123 Okay I get it (it turns out you're right btw). Then I would define h(t) = g(t-𝜋) or something like this (it is like computing the interpolation between the curve and a delayed value of itself, try 𝜋 or other values), then use the result as a starting point for the minimization procedure described there. Does this make sense to you? :) $\endgroup$
    – iago-lito
    Commented Oct 19, 2018 at 16:22
  • $\begingroup$ Yes, thank you very much. $\endgroup$
    – GerardF123
    Commented Oct 19, 2018 at 20:14

1 Answer 1

3
$\begingroup$

You can get an initial surface with an easy interpolation:

Show [ParametricPlot3D[{g[t], h[t]}, {t, 0, 2 \[Pi]}], 
ParametricPlot3D[u g[t] + (1 - u) h[t] , {t, 0, 2 \[Pi]}, {u, 0, 1}],Axes -> False, Boxed -> False]

enter image description here

$\endgroup$
4
  • $\begingroup$ Haha! How simple this was indeed XD Thank you :) For an unclear reason: this surface is not closed (there is a rupture region close to 0), is there any reason for this? Any way to make it close again? $\endgroup$
    – iago-lito
    Commented Aug 31, 2018 at 12:39
  • $\begingroup$ I although recognized "the hole". Perhaps options MaxRecursion, PlotPoints might help. $\endgroup$ Commented Aug 31, 2018 at 12:41
  • 1
    $\begingroup$ For me it seems to be a meshing problem of ParametricPlot3D . If you plot the mesh "by hand" everything is ok: Show[Table[ ParametricPlot3D[ Evaluate[ # g[t] + (1 - #) h[t]] , {t, 0, 2 \[Pi] } ] &[u], {u, 0, 1, .1}], Table[ParametricPlot3D[ Evaluate[ u g[#] + (1 - u) h[#]] , {u, 0, 1 } ] &[t], {t, 0, 2 Pi , 2 Pi/20.}], PlotRange -> All, Boxed -> False, Axes -> False ] $\endgroup$ Commented Aug 31, 2018 at 13:01
  • $\begingroup$ weird behaviour, but ok why not :\ $\endgroup$
    – iago-lito
    Commented Aug 31, 2018 at 13:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.