Ändern Sie den Plotstil als Funktion des Parameters in ParametricPlot
Das ManipulateFolgende erzeugt einen Pfad, der den Halbkreis der oberen Einheit durchquert, von {1,0}0 zum {-1,0}Zeitpunkt 1/2, dann denselben oberen Halbkreis durchquert, jedoch in umgekehrter Richtung, von {-1,0}1/2 zu {1,0}1 zurück.
Man kann jedoch die umgekehrte Hälfte des Pfades nicht "sehen", da sie auf demselben Halbkreis liegt, aber in umgekehrter Richtung von der vorderen Hälfte durchquert wird.
Ist es möglich, eine PlotStyleoder eine andere Anweisung zu verwenden, um den Stil der Kurve zum Zeitpunkt 1/2 so zu ändern, dass beispielsweise der Plot von da an dicker ist und eine andere Farbe hat?
f[t_ /; 0 <= t <= 1/2] := ReIm[Exp[2 \[Pi] I t]]
f[t_ /; 1/2 < t <= 1] := ReIm[Exp[2 \[Pi] I (1 - t)]]
Manipulate[
ParametricPlot[f[t], {t, 0, v},
PlotRange -> {{-1, 1}, {-1, 1}}], {{v, 0.01}, 0.01, 1}]
(Mir ist klar, dass es eine Möglichkeit gibt, das gewünschte Ergebnis zu fälschen, indem ich die Funktion fim Halbintervall {1/2, 1}so ändere, dass sie einen etwas größeren Radius als 1 hat. Aber ich würde den Radius lieber unverändert lassen und "nur" "Ändern Sie den Stil der Dicke und / oder Farbe der Kurve in diesem halben Intervall.)
Antworten
Clear["Global`*"]
f[t_ /; 0 <= t <= 1/2] := ReIm[Exp[2 \[Pi] I t]]
f[t_ /; 1/2 < t <= 1] := ReIm[Exp[2 \[Pi] I (1 - t)]]
Du könntest benutzen ColorFunction
BEARBEITEN:
Manipulate[
ParametricPlot[f[t], {t, 0, v},
PlotRange -> {{-1, 1}, {-1, 1}},
ColorFunction -> (If[#3 < 1/2, Blue, Red] &),
ColorFunctionScaling -> False],
{{v, 0.01}, 0.01, 1, 0.01, Appearance -> "Labeled"}]
Die Darstellung einer einzelnen Funktion ohne Singularitäten führt zu einem einzelnen LineObjekt, das nur eine einzige Dicke haben kann. Um zwei Dicken zu erhalten, müssten Sie zwei Linien zeichnen. Dies kann akzeptabel sein oder auch nicht, da es nicht wie eine einzelne Funktion aussieht.
Entweder
Manipulate[
ParametricPlot[{
Style[ConditionalExpression[f[t], t <= 1/2], AbsoluteThickness[1], Blue],
Style[ConditionalExpression[f[t], t >= 1/2], AbsoluteThickness[3], Red]},
{t, 0, v},
PlotRange -> {{-1, 1}, {-1, 1}},
PlotRangePadding -> Scaled[0.01]],
{{v, 0.01}, 0.01, 1, 0.01, Appearance -> "Labeled"}]
oder
Manipulate[
ParametricPlot[{
ConditionalExpression[f[t], t <= 1/2],
ConditionalExpression[f[t], t >= 1/2]},
{t, 0, v},
PlotRange -> {{-1, 1}, {-1, 1}},
PlotStyle -> {
Directive[AbsoluteThickness[1], Blue],
Directive[AbsoluteThickness[3], Red]},
PlotRangePadding -> Scaled[0.01]],
{{v, 0.01}, 0.01, 1, 0.01, Appearance -> "Labeled"}]
Sie können auch verwenden MeshFunctions, Meshund MeshShadingOptionen wie folgt:
Manipulate[ParametricPlot[f[t], {t, 0, v},
MeshFunctions -> {#3 &},
Mesh -> {{1/2}},
MeshStyle -> None,
MeshShading -> {Directive[CapForm["Butt"], AbsoluteThickness[7], Blue],
Directive[CapForm["Butt"], AbsoluteThickness[4],
Dashing[{Large, Medium}], Red]},
PlotRange -> {{-1, 1}, {-1, 1}} 1.1],
{{v, 0.01}, 0.01, 1}]
Verwenden
MeshShading -> {Directive[AbsoluteThickness[1], Blue],
Directive[AbsoluteThickness[7], Dashing[{Large, Medium}], Opacity[.5, Red]]}
bekommen
f[t_ /; 0 <= t <= 1/2] := ReIm[Exp[2 π I t]]
f[t_ /; 1/2 < t <= 1] := ReIm[Exp[2 π I (1 - t)]]
Manipulate[
ParametricPlot[f[t], {t, 0, v}, PlotRange -> {{-1, 1}, {-1, 1}},
ColorFunction -> Function[{t}, If[t > 1/4, Blue, Black]],
ColorFunctionScaling -> False], {{v, 0.01}, 0.01, 1}]
Manipulate[
ParametricPlot[f[t], {t, 0, v}, PlotRange -> {{-1, 1}, {-1, 1}},
PlotStyle -> If[v > 1/4, {Blue, Bold}, {Black, Dashed}]], {{v,
0.01}, 0.01, 1}]