# Plot a bezier triangle

I have to construct a bezier triangle that interpolates these 4 points:

$$\qquad (0,0,1),\,(1,0,0),\,(0,1,0),\,(0.5,0.5,0.75)$$

However, the surface that I get is so weird. Anyone please can help me to solve this problem?

pts =
{{{0, 0, 1}, {0.5, 0.5, 0.75}, {1, 0, 0}},
{{0, 0, 1}, {0, 1, 0}, {0.5, 0.5, 0.75}},
{{0, 1, 0}, {0.5, 0.5, 0.75}, {1, 0, 0}}};
f = BezierFunction[pts]

Show[
Graphics3D[{PointSize[Medium], Red, Map[Point, pts]}],
Graphics3D[{Gray, Line[pts], Line[Transpose[pts]]}],
ParametricPlot3D[f[u, v], {u, 0, 1}, {v, 0, 1},
ColorFunction -> "Rainbow"],
Mesh -> Full,
Axes -> True,
AxesLabel -> {"x", "y", "z"}]


• It is not clear to me what you want to correct in your plot Nov 29, 2020 at 7:01

a = {1, 0, 0};
b = {0, 1, 0};
c = {0, 0, 1};
d = {0.5, 0.5, 0.75};
m = 1.38 d;
pts = {{a, a, a, a},
{2/3 a + 1/3 b, m, m, 2/3 a + 1/3 c},
{2/3 b + 1/3 a, m, m, 2/3 c + 1/3 a},
{b, 2/3 b + 1/3 c, 2/3 c + 1/3 b, c}};
f = BezierFunction[pts];
Show[Graphics3D[{PointSize[0.04], Point[{a, b, c, d}]}],
Graphics3D[{PointSize[Medium], Red, Map[Point, pts]}],
Graphics3D[{Gray, Line[pts], Line[Transpose[pts]]}],
ParametricPlot3D[f[u, v], {u, 0, 1}, {v, 0, 1},
ColorFunction -> "Rainbow"], Mesh -> Full, Axes -> True,
AxesLabel -> {"x", "y", "z"}, ViewPoint -> {1.64, -0.14, 2.95}]


• @cvgmat can we convert B-spline to Bezier spline in mathematica? May 28, 2021 at 1:54