¿Cuál es el método más sencillo para construir una curva Bézier para la mitad de una curva Bézier simétrica?

¿Cuál es el método más sencillo para construir una curva Bézier para la mitad de una curva Bézier simétrica?

Considere la siguiente curva de Bézier simétrica (alrededor del eje vertical) construida por 4 puntos A, B, Cy D. Ahora quiero construir otra curva Bézier (llamada L) solo para la parte izquierda o derecha de la misma.

\documentclass[pstricks,border=24pt]{standalone}
\usepackage{pst-eucl}
\begin{document}

\begin{pspicture}[showgrid=false](-3,-1)(3,3)
    \pstGeonode
        (3,3){A}
        (1,1){B}
        (-1,1){C}
        (-3,3){D}
    \psbezier(A)(B)(C)(D)
    \psline[linecolor=red](0,3)(0,-1)
\end{pspicture}

\end{document}

ingrese la descripción de la imagen aquí

Sin resolver primero una ecuación polinómica, ¿cómo puedo construir la curva de Bézier L? Se aceptan respuestas con PSTricks (preferido) o TikZ o Asymptote.

¡Tenga en cuenta que odio el método de prueba y error!

Respuesta1

ingrese la descripción de la imagen aquí

Aquí está la Asymptoteversión, que no utiliza los Asymptotecomandos generales para dividir un camino (guía), simplemente realiza una subdivisión simple del Beziersegmento cúbico:

// split.asy: 

size(5cm);
pair A,B,C,D;
A=(3,3); B=(1,1); C=(-1,1); D=(-3,3);

pair P,B1,C1,B2,C2;

P=(A+D+3(B+C))/8;

B1 = (A+B)/2;
C1 = ((A+C)/2+B)/2;
C2 = (D+C)/2;
B2 = ((D+B)/2+C)/2;

guide g=A..controls B and C..D;
guide gl=A..controls B1 and C1..P;
guide gr=P..controls B2 and C2..D;
draw(g);
draw(gl,deepgreen+1.6bp+opacity(0.5));
draw(gr,red+1.6bp+opacity(0.5));
draw((0,3)--(0,-1),red);

dot(A--B--C--D--P,UnFill);
dot(B1--C1,deepgreen,UnFill);
dot(B2--C2,red,UnFill);
label("$A$",A,SE);
label("$B$",B,S);
label("$C$",C,S);
label("$D$",D,SW);
label("$P$",P,NE);
label("$B_1$",B1,E,deepgreen);
label("$C_1$",C1,E,deepgreen);
label("$B_2$",B2,W,red);
label("$C_2$",C2,W,red);

Para obtener uno independiente split.pdf, ejecute asy -f pdf split.asy.

Respuesta2

Una versión traducida de la respuesta asíntota de @g.kov en PSTricks.

\documentclass[pstricks,border=24pt]{standalone}
\usepackage{pst-eucl}
\begin{document}

\begin{pspicture}[showgrid=true](-3,-1)(3,3)
    \pstGeonode
        (3,3){A}
        (1,1){B}
        (-1,1){C}
        (-3,3){D}
    \psbezier(A)(B)(C)(D)
    \psline[linecolor=red](0,3)(0,-1)
    \nodexn{.125(A)+.125(D)+.375(B)+.375(C)}{R'}
    \nodexn{.5(A)+.5(B)}{P'}
    \nodexn{.25(A)+.5(B)+.25(C)}{Q'}
    \pstGeonode
        (P'){P}
        (Q'){Q}
        (R'){R}
    \psbezier[linecolor=red](A)(P)(Q)(R)
\end{pspicture}

\end{document}

ingrese la descripción de la imagen aquí

información relacionada