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$
  • $\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 Oct 19 '18 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 Oct 19 '18 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 Oct 19 '18 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 Oct 19 '18 at 16:22
  • $\begingroup$ Yes, thank you very much. $\endgroup$ – GerardF123 Oct 19 '18 at 20:14
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$
  • $\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 Aug 31 '18 at 12:39
  • $\begingroup$ I although recognized "the hole". Perhaps options MaxRecursion, PlotPoints might help. $\endgroup$ – Ulrich Neumann Aug 31 '18 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$ – Ulrich Neumann Aug 31 '18 at 13:01
  • $\begingroup$ weird behaviour, but ok why not :\ $\endgroup$ – iago-lito Aug 31 '18 at 13:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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