# Lofting: Make a 3D surface out of two 2D end curves

I have 2D plot:

p1 =ParametricPlot[{Sin[x],Cos[x]},{x,0,2*Pi}] and another 2D plot:

p2=ParametricPlot[{(5-0.2*x)*Sin[x],Cos[x]},{x,0,2*Pi}] and I want to make a 3D object out of that. It would have to merge from the front, which is p1 to the back, which is p2. How can I do it ? Thank you.

• Something like a cylinder, but with different ends? Aug 10 '16 at 15:19
• @J.M. Yes, exactly. I give the two ends and Mathematica interpolates the surface between. Aug 10 '16 at 15:51
• For reference: this operation is sometimes called lofting. Aug 10 '16 at 16:16
• @J.M. Thanks !! Aug 10 '16 at 16:24

ParametricPlot3D might help.

f1[u_] := {Sin[u], Cos[u]}
f2[u_] := {(5 - 0.2 u) Sin[u], Cos[u]}


Then simply interpolate between the two as a function of length:

ParametricPlot3D[
Append[v f1[u] + (1 - v) f2[u], v], {u, 0, 2 \[Pi]}, {v, 0, 1},
BoxRatios -> {1, 1, 1}
] • One might also consider using a Hermite cubic instead of a linear function, as in this example. This is what you get. Aug 10 '16 at 16:09
• That's very nice!! Aug 10 '16 at 16:11
• @Quantum_oli Thank you very much! :) :) Aug 10 '16 at 16:25
• @Quantum_Oil can you try that: r[t_] := a + 1/bTanh[bSin[nt]] f1[t_] := 10*{r[t]*Cos[t], r[t]*Sin[t]} f2[t_] := {r[t]*Cos[t], r[t]*Sin[t]} (*Then simply interpolate between the two as a function of length:) ParametricPlot3D[ Append[v f1[u] + (1 - v) f2[u], v], {u, 0, 2 [Pi]}, {v, 0, 1}, Mesh -> 80, MeshFunctions -> Automatic] Aug 10 '16 at 16:57
• This does not work. Aug 10 '16 at 16:57