Вы можете сделать это параметрически.
Подберите два ваших сегмента, описываемых как:
{s1(t)} = t {a1} + {b1} (0 <= t <= 1)
{s2(t)} = t {a2} + {b2} (0 <= t <= 1)
, где {} обозначает векторные величины, {a}, {b} константы.
Тогда для любого tу вас есть две точки в пространстве, по одной в каждом сегменте.
Прямая линия между ними может быть описана следующим образом:
{r(v)} = ({s2(t)} - {s1(t)}) v + {s1(t)} (0 <= v <= 1 )
Мы почти на месте.Теперь мы напишем функцию, описывающую поверхность, заменив s1 и s2 их значениями:
{K(v,t)} = t v ( {a2} - {a1} )+ v ({b2} - {b1}) + t {a1} + {b1} (0<= t,v <=1)
HTH!
Edit
Пример:
a1 = {1, 1, 1};
b1 = {0, 0, 0};
a2 = {1, 1, 0};
b2 = {0, 0, 0};
Show[ParametricPlot3D[
t v a1 (a2 - a1) + v (b2 - b1) + t a1 + b1, {t, 0, 1}, {v, 0, 1},
AxesLabel -> {"x", "y", "z"}],
Graphics3D[{Thick, Red, Line[{b1, a1 + b1}]}],
Graphics3D[{Thick, Red, Line[{b2, a2 + b2}]}]]
Другой пример, показывающий неплоскую поверхность:
a1 = {1, 1, 1};
b1 = {0, 0, 1};
a2 = {1, 0, 0};
b2 = {0, 1, 0};