Was ist die einfachste Methode, eine Bézierkurve für die Hälfte einer symmetrischen Bézierkurve zu konstruieren?

Was ist die einfachste Methode, eine Bézierkurve für die Hälfte einer symmetrischen Bézierkurve zu konstruieren?

Betrachten Sie die folgende symmetrische (um die vertikale Achse) Bézierkurve, die aus den 4 Punkten A, B, C, und besteht D. Jetzt möchte ich eine weitere Bézierkurve (mit dem Namen L) nur für den linken oder rechten Teil davon konstruieren.

\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}

Bildbeschreibung hier eingeben

Wie kann ich die Bézierkurve konstruieren, ohne vorher eine Polynomgleichung zu lösen L? Antworten mit PSTricks (bevorzugt) oder TikZ oder Asymptote sind willkommen.

Beachten Sie, dass ich die Methode „Versuch und Irrtum“ hasse!

Antwort1

Bildbeschreibung hier eingeben

Hier ist die AsymptoteVersion, die nicht die allgemeinen Befehle zum Aufteilen eines Pfads (einer Führung) verwendet Asymptote, sondern nur eine einfache Unterteilung des kubischen BezierSegments durchführt:

// 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);

Um eine eigenständige Version zu erhalten split.pdf, führen Sie aus asy -f pdf split.asy.

Antwort2

Eine übersetzte Version der Asymptote-Antwort von @g.kov in 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}

Bildbeschreibung hier eingeben

verwandte Informationen