# Plot a surface between three intersecting curves using 3D data sets

I would like to plot a surface between the intersecting points of three 3-dimensional curves. The curves are created using ListLinePlot3D, from the following lists:

List1:

{{0.01, 0., 1.}, {5.72, 0.01, 1.}, {11.32, 0.04, 1.}, {16.7, 0.09,
1.}, {21.81, 0.16, 1.}, {26.57, 0.25, 1.}, {30.97, 0.36, 1.}, {35.,
0.49, 1.}, {38.66, 0.64, 1.}, {41.99, 0.81, 1.}, {45., 1.,
1.}, {47.73, 1.21, 1.}, {50.2, 1.44, 1.}, {52.43, 1.69, 1.}, {54.46,
1.96, 1.}, {56.31, 2.25, 1.}, {58., 2.56, 1.}, {59.54, 2.89,
1.}, {60.95, 3.24, 1.}, {62.24, 3.61, 1.}, {63.44, 4., 1.}, {64.54,
4.41, 1.}}


List2:

{{89.99, 1., 0.}, {84.28, 1., 0.01}, {78.68, 1., 0.04}, {73.3, 1.,
0.09}, {68.19, 1., 0.16}, {63.43, 1., 0.25}, {59.03, 1.,
0.36}, {55., 1., 0.49}, {51.34, 1., 0.64}, {48.01, 1., 0.81}, {45.,
1., 1.}, {42.27, 1., 1.21}, {39.8, 1., 1.44}, {37.57, 1.,
1.69}, {35.54, 1., 1.96}, {33.69, 1., 2.25}, {32., 1.,
2.56}, {30.46, 1., 2.89}, {29.05, 1., 3.24}, {27.76, 1.,
3.61}, {26.56, 1., 4.}, {25.46, 1., 4.41}}


List3:

{{89.99, 1., 0.}, {86.98, 0.9, 0.}, {83.65, 0.81, 0.01}, {79.99, 0.72,
0.02}, {75.96, 0.64, 0.04}, {71.56, 0.56, 0.06}, {66.79, 0.49,
0.09}, {61.69, 0.42, 0.12}, {56.3, 0.36, 0.16}, {50.7, 0.3,
0.2}, {44.99, 0.25, 0.25}, {39.28, 0.2, 0.3}, {33.69, 0.16,
0.36}, {28.3, 0.12, 0.42}, {23.2, 0.09, 0.49}, {18.43, 0.06,
0.56}, {14.03, 0.04, 0.64}, {10.01, 0.02, 0.72}, {6.34, 0.01,
0.81}, {3.01, 0., 0.9}, {0., 0., 1.}}


Can anyone provide a way forward?

• Welcome to Mathematica StackExchange! What exactly do you mean by "a surface between curves"? There are infinitely many different surfaces which you can draw. Mar 25 at 12:43
• @Domen Thank you for reaching out - I am referring to the triangular area contained by the 3 intersections seen here. Mar 25 at 12:56
• @cvgmt Kindly find updated description with full data Mar 25 at 13:10
• You can do it with four curves as a Coons Patch I doubt the result with 3 curves will be as good. Mar 25 at 14:02

I arrived at the answer. Personal opinion is there is not enough ListPlot3D material here on Stack Exchange, so I hope this will still help someone someday.

Basically I combined all lists into one List, using a simple AppendTo. I then plugged the list into a ListPlot3D, adjusted some ranges and then got the result I wanted.

Table[If[Data1[[i, 2]] <= 1, AppendTo[Data,  Data1[[i]]]], {i, 1,
Length[Data1]}];
Table[AppendTo[Data,  Data2[[i]]], {i, 1, Length[Data2]}];
Table[AppendTo[Data,  Data3[[i]]], {i, 1, Length[Data3]}];

p = ListPlot3D[Data, PlotRange -> {{0, 90}, {0, 1}, {0, 1}},
PlotStyle -> Yellow, Mesh -> None, ClippingStyle -> None];

q = ListLinePlot3D[{Data1, Data2, Data3},
PlotRange -> {{0, 90}, {0, 3}, {0, 3}},
PlotStyle -> {Green, Red, Blue}]

Show[q, p]


The result:

Thanks for the trouble guys. Feel free to comment if there are better ways to achieve this.

• Have you seen Join[]? Mar 26 at 11:30