PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PSTricks-Hilfe



W2K
15-04-2007, 11:50
Hallo,

ich benötige Hilfe zu PSTricks:



\makeatletter
\def\pscube(#1,#2)(#3,#4)(#5,#6)(#7,#8){%
\psset{unit=1cm}
\psset{linewidth=0.4pt}
%
\psline(#1,#2)(!#1 #3 add #2 #4 add)
\psline(#1,#2)(!#1 #5 add #2 #6 add)
%
\psline(!#1 #5 add #2 #6 add)(!#1 #7 add #2 #8 add)
\psline(!#1 #3 add #2 #4 add)(!#1 #7 add #2 #8 add)
%
\psdots[dotscale=1.5,linecolor=red](!#1 #7 add #2 #8 add)
}%
\makeatother


Mit dem Makro \pscube zeichne ich ein Rechteck. Die erste Koordinate (x_s,y_s) = (#1,#2) bestimmt die Lage im Raum. Die weiteren Koordinaten definieren die restlichen Eckpunkte relativ zu x_s,y_s.
Mein Ziel ist es nun in die Mitte des Objektes einen Punkt zu setzen.

Beispiel:


%\pscube(x_s,y_s)(xe2,ye2)(xe3,ye3)(xe4,ye4)
\pscube(2.0,1.0)(2.0,0.5)(0.0,1.0)(2.0,1.5)


Mein Problem besteht darin, dass ich nicht verstehe, wie

1. mit den Operationen add, div, sub Kombinationen erzeugt werden


z.B.: (a + b)/2 - 7*x = y


2. Wodurch wird in dem psline-Befehl signalisiert, wann die neue y-koordinate beginnt. In dem folgenden Beispiel ist x_e=#1 + #7 und y_e=#2 + #8


psline(!#1 #5 add #2 #6 add)(!#1 #7 add #2 #8 add)

Woher weiß LaTeX, dass #2+#8 nicht mehr zu x_e addiert werden soll.

Vielen Dank.

W2K
15-04-2007, 12:00
Und nun folgt noch eine Frage:

Kann man mehr als 9 Parameter definieren? Ich benötige die Koordinaten #9 und #10 für einen weiteren Punkt, den ich markieren möchte.

[code]
%------------------------------------------------------------------------------
\makeatletter
\def\pscube(#1,#2)(#3,#4)(#5,#6)(#7,#8)(#9,#10){%
\psset{unit=1cm}
\psset{linewidth=0.4pt}
%
\psline(#1,#2)(!#1 #3 add #2 #4 add)
\psline(#1,#2)(!#1 #5 add #2 #6 add)
%
\psline(!#1 #5 add #2 #6 add)(!#1 #7 add #2 #8 add)
\psline(!#1 #3 add #2 #4 add)(!#1 #7 add #2 #8 add)
%
\psdots[dotscale=1.5,dotstyle=x,linecolor=black,
linewidth=0.7pt](!#1 #9 add #2 #10 add)
}%
\makeatother
%------------------------------------------------------------------------------
[code]

localghost
15-04-2007, 12:31
Benutze doch für dein Vorhaben pst-3dplot (ftp://dante.ctan.org/tex-archive/help/Catalogue/entries/pst-3dplot.html) (Parellelprojektion) oder pst-vue3d (ftp://dante.ctan.org/tex-archive/help/Catalogue/entries/pst-vue3d.html) (Zentralprojektion).

Der Name PSTricks drückt ja bereits aus, dass es sich dabei um Postscript Tricks handelt. Deswegen kann ja auch pdflatex damit nichts anfangen. Die einzelnen Befehle verwenden Postscript, um die Grafikelemente umzusetzen. Was den Umgang mit Operatoren betrifft, so handelt es sich hier um Stapelverarbeitung (landläufig auch als umgekehrte polnische Notation bekannt). Deshalb ist es etwas mühsam, damit zusammenhängende Ausdrücke zu bilden. Aber dein Beispiel ist ja recht simpel.

y=(a + b)/2 - 7*x % algebraisch
a b add 2 div x 7 mul sub % postscript
Die zweite Zeile könnte man beispielsweise dem Befehl \psplot als Argument übergeben. Aber selbst da gibt es schon zahlreiche Vereinfachungen. Sehr viel besser wird dir das alles Herbert Voss erklären können.

W2K
15-04-2007, 12:48
Hallo localghost,

1) welches Makro meinst Du genau in pst-3dplot?

2) Ich suche keine 3D-Darstellungen. Mein Problem ist eben. Das schließt zwar das pst-3dplot-Paket nicht unbedingt aus, aber meine Rechtecke sollen nahezu beliebig verschert werden können.

Hier ein Beispiel, was ich meine:


\pscube(8.1,0.5)(3.0,-0.5)(0.5,1.5)(2.5,2.0)%(2.5,1.5)

Für diesen Körper suche ich den Schwerpunkt...

localghost
15-04-2007, 13:02
1) welches Makro meinst Du genau in pst-3dplot?
Der Befehl \psplot kommt aus pstricks (ftp://dante.ctan.org/tex-archive/help/Catalogue/entries/pstricks.html). Ich dachte an \pstThreeDBox aus pst-3dplot (ftp://dante.ctan.org/tex-archive/help/Catalogue/entries/pst-3dplot.html). Da gibst Du einen Punkt an und kannst dann mit drei Vektoren die Gestalt der Box bestimmen. Das müsste also auch eine Scherung erlauben.

W2K
15-04-2007, 16:45
Und wie könnte ich weitere Argumente realisieren?

Kennst Du eine Anleitung, die das Programmieren eigener Maktros in LateX beschreibt? Wenn ja, würdest Du mir bitte den Link posten.

Vielen Dank + Gruß, W2K

voss
17-04-2007, 07:06
Und wie könnte ich weitere Argumente realisieren?

Kennst Du eine Anleitung, die das Programmieren eigener Maktros in LateX beschreibt? Wenn ja, würdest Du mir bitte den Link posten.


da sieht man sich einfach mal ein Makro aus pst-3dplot im Originalcode an und
kapiert schnell wie das geht ...

Herbert