PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bremskontinuum zeichnen



Nils:D
23-08-2010, 18:14
Hi,

ich muss ein Bremskontinuum zeichnen und nutze PSTricks für so etwas in der Regel. Hier ein Bild (https://lp.uni-goettingen.de/get/image/5090). Es wird nicht mein letztes Bremskontinuum sein das ich zeichne und daher die Frage: Wie ließe sich so etwas zeichnen, wenn man keine Funktion hat die man plotten lassen könnte ? Ich muss raten quasi, die Ergebnisse sollen jedoch halbwegs mit dem Original übereinstimmen, was sicherlich mit etwas justieren machbar ist. Die Frage ist nur: Welches Kommando nimmt man dafür ? \pscurve ist sehr toll, \pscurve(1.0,0.0)(1.25,1.0)(1.875,0.5)(2.1,0.375)( 4.0,0.0) und schon hat man den kontinuierlichen Teil, aber die charakteristischen Linien fehlen und es ist mit dem Befehl nicht möglich sie wirklich zu integrieren, da \psurve bei den Ausreißern der Funktion einfach zu rundlich ist. Ansonsten wäre das Kommando schon geeignet, allerdings stellt sich die Frage wie man bei den charakteristischen Linien bei der Kurve die enstprechenden Teile los wird ohne dass die Kurve dann wieder ganz anders aussieht.

Gruß,
Nils

voss
23-08-2010, 18:34
Es wird nicht mein letztes Bremskontinuum sein das ich zeichne und daher die Frage: Wie ließe sich so etwas zeichnen, wenn man keine Funktion hat die man plotten lassen könnte ? Ich muss raten quasi, die Ergebnisse sollen jedoch halbwegs mit dem Original übereinstimmen, was sicherlich mit etwas justieren machbar ist. Die Frage ist nur: Welches Kommando nimmt man dafür ? \pscurve ist sehr toll, \pscurve(1.0,0.0)(1.25,1.0)(1.875,0.5)(2.1,0.375)( 4.0,0.0) und schon hat man den kontinuierlichen Teil, aber die charakteristischen Linien fehlen und es ist mit dem Befehl nicht möglich sie wirklich zu integrieren, da \psurve bei den Ausreißern der Funktion einfach zu rundlich ist. Ansonsten wäre das Kommando schon geeignet, allerdings stellt sich die Frage wie man bei den charakteristischen Linien bei der Kurve die enstprechenden Teile los wird ohne dass die Kurve dann wieder ganz anders aussieht.


du hast docheinen Datensatz vom Original oder nicht?

Ansonsten machst du einfach fünf getrennte \pscurve, damit
du die scharfen Kanten bekommst, wobei End- und Anfangspunkt
jeweils identisch sind.
Oder alternativ \pscustom, falls du unterhalb der Kurve farblich was
ausfüllen willst.

Herbert

Nils:D
23-08-2010, 19:35
Die Daten habe ich leider nicht. Die Idee mit den mehrfachen Kurven hatte ich auch schon, doch wie bringe ich sie zusammen, dass es korrekt aussieht ? Würde ich einfach die eine oben erwähnte Kurve nehmen und an einem Punkt abschneiden, nicht weit davon entfernt eine neue anfangen, wäre da eine falsche Kurvensteigung bzw. ein zu steiler Abfallwinkel. (Das was ich gerade geschildert habe, erzeugt die normale Kurve bloß mit einer Lücke drinnen, da ja zwei Kurven wovon eine früher aufhört und die andere entsprechend anfängt.)

Gruß,
Nils

voss
23-08-2010, 20:14
Die Daten habe ich leider nicht. Die Idee mit den mehrfachen Kurven hatte ich auch schon, doch wie bringe ich sie zusammen, dass es korrekt aussieht ? Würde ich einfach die eine oben erwähnte Kurve nehmen und an einem Punkt abschneiden, nicht weit davon entfernt eine neue anfangen, wäre da eine falsche Kurvensteigung bzw. ein zu steiler Abfallwinkel. (Das was ich gerade geschildert habe, erzeugt die normale Kurve bloß mit einer Lücke drinnen, da ja zwei Kurven wovon eine früher aufhört und die andere entsprechend anfängt.)

dann zeichne die normale curve mit \pscurve und die Spitzen fügst du einfach mit \rput[lb](..,..){\pscurve(..)(..)} ein. Die kannst du dann
auch einfach kopieren.

Herbert

Nils:D
23-08-2010, 22:29
Nach einigen Experimenten habe ich es geschafft die Hauptkurve mit mehreren \pscurve zu machen und die Peaks mit Bezier-Kurven. Es ist natürlich wirklich recht aufwendig, wobei ich sagen muss dass \psbezier doch gar nicht mal so übel zu steuern ist, ist bloß etwas ungewohnt wenn man es nicht so oft benutzt hat. Die drei Kurvenparameter welche über curvature= <1> <2> <3> gesetzt werden finde ich nicht intuitiv genug zu bedienen, habe damit mindestens eine halbe Stunde verbracht und nicht das hinbekommen was ich wollte. Daher mein halber Umstieg auf \psbezier.

Gruß,
Nils

voss
23-08-2010, 22:35
Nach einigen Experimenten habe ich es geschafft die Hauptkurve mit mehreren \pscurve zu machen und die Peaks mit Bezier-Kurven. Es ist natürlich wirklich recht aufwendig, wobei ich sagen muss dass \psbezier doch gar nicht mal so übel zu steuern ist, ist bloß etwas ungewohnt wenn man es nicht so oft benutzt hat. Die drei Kurvenparameter welche über curvature= <1> <2> <3> gesetzt werden finde ich nicht intuitiv genug zu bedienen, habe damit mindestens eine halbe Stunde verbracht und nicht das hinbekommen was ich wollte. Daher mein halber Umstieg auf \psbezier.


hier nmal dasselbe mit einfachen Kurvenzügen:

\documentclass[12pt]{article}
\usepackage{pst-plot}
\begin{document}

\begin{pspicture}(12,12)
\psaxes{->}(12,12)
\pscustom[linewidth=1pt]{%
\pscurve(0.65,0)(1,2.5)(2,6.5)(3,8.1)(4,8.4)(4.9,8 .1)
\psline(5,8.3)(5.08,10)(5.1,12.4)(5.2,11)(5.21,9)( 5.3,8)(5.4,7.7)
\pscurve(5.4,7.7)(6,7)(6.3,6.5)
\psline(6.4,6.6)(6.41,7)(6.5,10.7)(6.6,9)(6.61,7)( 6.8,5.8)
\pscurve(6.8,5.7)(7.3,5)(8,4)(9,3)(10,2.2)(11,1.9) (11.6,1.8)}
\end{pspicture}


\end{document}

Herbert

borose
24-08-2010, 10:48
Es geht natürlich auch mit der "brutalo"-Methode, indem du dir die Werte eines Bremsspektrums inkl. der charakt. Strahlung einfach ausrechnest:

Bremsstrahlung nach
J_B (x) = A*(x/B-1)*x^-2

beliebige charakteristische Strahlung anhand einer Gauss-Kurve:
J_cSi (x)=D*exp(-E*(x-x_offset)^2)

die Parameter (A,B...) jeweils einfach anpassen

dann J=Summ von oben

dann kannst du die Formel J=... von mir aus direkt in Excel oder ähnliches einhacken und dir die Werte ausgeben lassen. dann hast du (x,y) Wertepaare, die du dir einfach plotten lassen kannst.

Die x-Punktedichte kannst du dir ja in Bereichen der charakt. Strahlung deutlich erhöhen. So hast du auf jeden Fall eine physikal. korrekte und glatte Kurve

Viele Grüße!