pstricks Vergleich von Kordinatenwerten zweier Knoten

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

Markdown is OFF

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: pstricks Vergleich von Kordinatenwerten zweier Knoten

pstricks Schrittweise Darstellungd der Strahlenverläufe

von Gast » Mi 6. Nov 2019, 09:49

Ich weiß es ist kein gutes Minimalbeispiel. Deswegen versuche ich noch einmal zu erläutern, worum es mir geht.

Ich benötige eine Funktion in Pstricks die die Größe der x- oder y-Koordinaten eines Knoten im Vergleich zu einem anderen Knoten auswertet und das Ergebnis einer Variable vom Typ Boolean zuweist.

Erforderlich ist das, um den Strahlenverlauf bei einer Sammellinse in Einzelschritten darzustellen. Z.B.
1. Bild: optische Achse
2. Bild: Linsenebene
3. Bild: Gegenstand
4. Bild: Parallelstrahl von Gegenstand bis zur Linse
5. Bild: Brennpunktstrahl aus Bildstrahl von Linse zu F'
6. Bild: Brennpunktstrahl aus Bildstrahl von Linse zu Bild
u.s.w

Verwende ich hierzu zur Berchnung der Punkte das Paket pst-optic, kann ich die dann einzeln gezeichneten Linien nicht am Rand des Bildes enden lassen.

Verwendet man das paket pst-optic dafür wird immer der gesamte Strahlenverlauf dargestellt. Verwendet man das Paket nur zur Berechnung der Punkte und zeichet die Strahlen selbst, werden siese nicht am Rand abgeschnitten. Dieses problem will ich mit einer Ifthen ... else ... fi Konstruktion lösen und benötige dazu diesen Vergleich.

Code: Alles auswählen

\documentclass{scrartcl}
\usepackage{%
     pstricks,%
     pstricks-add,%
     pst-eucl,
     pst-optic,
     pst-node,%
     pst-xkey}
\usepackage{auto-pst-pdf}
\begin{document}
\begin{pspicture*}[showgrid](-8,-6)(8,6)
\rput(0,0){\lens[lensType=CVG,focus=3,OA=-3,drawing=false]}
\psdot(F)\psdot(F')\psdot(O)\psdot(I)\psdot(I')
\psdot(F)\psdot(F')\psdot(O)\psdot(I)\psdot(I')
\pstLineAB[linewidth=0.75mm,arrowsize=2mm,arrowinset=0]{->}{A}{B}\naput{G}
\pstLineAB[linecolor=red]{B}{I}
\pstLineAB[linecolor=red]{F'}{I}
%\pstLineAB[linecolor=red]{I}{B'}
\end{pspicture*}
\begin{pspicture*}[showgrid](-8,-6)(8,6)
\rput(0,0){\lens[lensType=CVG,focus=3,OA=-3,drawing=false]}
\psdot(F)\psdot(F')\psdot(O)\psdot(I)\psdot(I')
\psdot(F)\psdot(F')\psdot(O)\psdot(I)\psdot(I')
\pstLineAB[linewidth=0.75mm,arrowsize=2mm,arrowinset=0]{->}{A}{B}\naput{G}
\pstLineAB[linecolor=red]{B}{I}
\pstLineAB[linecolor=red]{F'}{I}
\pstLineAB[linecolor=red]{I}{B'}
\end{pspicture*}
\end{document}
Wenn jemand eine andere Idee hat um bei optischen Verläufen die Strahlenverläufe schrittweise entstehen zu lassen, wäre ich natürlich erst recht dankbar.

pstricks Vergleich von Kordinatenwerten zweier Knoten

von Gast » Di 5. Nov 2019, 12:44

Hallo,
ich versuche für den Physikunterricht eingige Grafiken zu gestalten und verwende seit längerem pstricks dafür. Um mir die Arbeit zu erleichtern wäre es für mich sehr sinnvoll von zwei Knoten (meistens mit \pnode oder mit \pstGeonode definiert im X Wert oder im Y Wert zu vergleichen, um dann Verzweigungen zu steuern. Leider gelingt es mir nicht auf die einzelnen X und Y Werte zu zu greifen.
Folgendes stelle ich mir in etwa vor (noch nicht lauffähig):

Code: Alles auswählen

\documentclass{scrartcl}
\usepackage{%
	pstricks,%	
	pstricks-add,%
	pst-eucl,
	pst-node,%
	pst-xkey}
\usepackage{auto-pst-pdf}
\SpecialCoor
\makeatletter
\newif\ifpst@nodeXlt
\pst@nodeXltfalse

% das Kommando funktioniert nicht zum setzen von \pst@nodeXlt
%\def\pstNodeXlt(#1)(#2){%
%	\pnode(#1){testA}
%	\pnode(#2){testB}
%	\pst@getcoor{testA}\pst@tempA
%	\pst@getcoor{testA}\pst@tempB
%	\addto@pscode{
%	/YA \pst@tempA exch pop \pst@number\psyunit div def
%	/XA \pst@tempA exch pop \pst@number\psxunit div def	
%	/YB \pst@tempA exch pop \pst@number\psyunit div def
%	/XB \pst@tempA exch pop \pst@number\psxunit div def
%	YA YB  lt %
%%	\pstnodeXlttrue%so sicher nicht möglich
%if}
%}
\begin{document}
\pst@nodeXlttrue
\ifpst@nodeXlt wahr \else falsch \fi	
\begin{pspicture}(-8,-5)(8,5)
\pnode(0,0){A}\pnode(5,5){B} 
%\pstNodeXlt(A)(B)
\ifpst@nodeXlt \psline(a)(B) \else \psline(A|B)(B|A) \fi
\end{pspicture}
\end{document}
Kann mir jemand weiterhelfen. Ich will darauf aufbauend einige neue Kommandos defineren.

Nach oben