PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : \PstDie Blickwinkel



Sabrina.Dankers
30-06-2008, 08:34
Hallo Leute,

ich habe da ein kleines Problem. Und zwar möchte ich mit PsTricks und \PstDie Würfel darstellen, bei denen immer eine ganz bestimmte Augenzahl oben liegen soll. Mir ist schon klar, dass das mit dem viewpoint zusammenhängt, welche Augenzahl oben liegt, aber ich habe noch nicht geschnallt wie genau ich das steuern kann. Ich brauche also die Werte für viewpoint, so dass jede Augenzahl einmal oben liegt, sich aber ansonsten die Position des Würfels nicht verändert. Kann mir da jemand helfen?

Augenzahl 1 oben: viewpoint=? ? ?
Augenzahl 2 oben: viewpoint=? ? ?
Augenzahl 3 oben: viewpoint=? ? ?
Augenzahl 4 oben: viewpoint=? ? ?
Augenzahl 5 oben: viewpoint=? ? ?
Augenzahl 6 oben: viewpoint=? ? ?

Es würde ansonsten auch reichen, wenn mir jemand erklären könnte, wie das zusammenhängt. Ich habe es wie gesagt noch nicht so ganz gerafft.

voss
30-06-2008, 09:32
Und zwar möchte ich mit PsTricks und \PstDie Würfel darstellen, bei denen immer eine ganz bestimmte Augenzahl oben liegen soll. Mir ist schon klar, dass das mit dem viewpoint zusammenhängt, welche Augenzahl oben liegt, aber ich habe noch nicht geschnallt wie genau ich das steuern kann. Ich brauche also die Werte für viewpoint, so dass jede Augenzahl einmal oben liegt, sich aber ansonsten die Position des Würfels nicht verändert. Kann mir da jemand helfen?

Augenzahl 1 oben: viewpoint=? ? ?
Augenzahl 2 oben: viewpoint=? ? ?
Augenzahl 3 oben: viewpoint=? ? ?
Augenzahl 4 oben: viewpoint=? ? ?
Augenzahl 5 oben: viewpoint=? ? ?
Augenzahl 6 oben: viewpoint=? ? ?

Es würde ansonsten auch reichen, wenn mir jemand erklären könnte, wie das zusammenhängt. Ich habe es wie gesagt noch nicht so ganz gerafft.

irgendiwe scheint die z-Koordinate nicht beachtet zu werden ...
Versuch mal den Würfel aus pst-vue3d oder den einfachen, wenn du nur das
Symbol brauchst, aus pstricks-add


\documentclass[12pt,ngerman,parskip]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{pst-vue3d,pstricks-add}

\begin{document}
\psset{Decran=5}
\pspicture(2,2)
\DieThreeD(0,0,0) % 5
\endpspicture
\pspicture(2,2)
\DieThreeD[RotZ=90](0,0,0) % 5
\endpspicture
\pspicture(2,2)
\DieThreeD[RotZ=180](0,0,0) % 5
\endpspicture
\pspicture(2,2)
\DieThreeD[RotZ=270](0,0,0) % 5
\endpspicture
\pspicture(2,2)
\DieThreeD[RotX=90](0,0,0) % 5
\endpspicture

\bigskip
\psdice{1}\hspace{1cm}
\psdice{2}\hspace{1cm}
\psdice{3}\hspace{1cm}
\psdice{4}\hspace{1cm}
\psdice{5}\hspace{1cm}
\psdice{6}

\end{document}

Herbert

Sabrina.Dankers
30-06-2008, 10:04
Danke dir. Ich werde es nachher mal ausprobieren. Momentan bin ich mit was anderem beschäftigt, weil die Zeit drängte.

Sabrina.Dankers
30-06-2008, 10:34
Hi,

hab mir deine Beispieldatei mal angeschaut. Ist ganz gut für meinen Zweck. Die \psdice sind super. Mal sehen welches von beiden ich verwende.

Vielen Dank noch mal.

Sabrina.Dankers
30-06-2008, 13:42
Hallo nochmal,

ich habe da jetzt ein kleines anderes Problem. Ich wollte mir mit \psdice nun einen Befehl generieren, den ich dann immer wieder anwenden kann. Dabei sind die Würfelpunkte viel zu groß und ich weiß einfach nicht, wo da mein Fehler liegt.

Hier mal mein Code


\def\WuerfelzDfuenf{\@ifnextchar[\WuerfelzDfuenf@i{\WuerfelzDfuenf[1]}}
\def \WuerfelzDfuenf@i[#1]#2{%
\begingroup\psscalebox{#1}{
\pspicture(1,1)
\rput[lb](0.5,0.5){\psdice[fillstyle=solid,fillcolor=#2!25]{5}}
\endpspicture}\endgroup}


Als Ausgabe bekomme ich das angehängte Bild. Wie man sieht, sind die Würfelaugen völlig überdimensioniert. Wo steckt der Denkfehler?
LG Sabrina

voss
30-06-2008, 14:05
ich habe da jetzt ein kleines anderes Problem. Ich wollte mir mit \psdice nun einen Befehl generieren, den ich dann immer wieder anwenden kann. Dabei sind die Würfelpunkte viel zu groß und ich weiß einfach nicht, wo da mein Fehler liegt.

Als Ausgabe bekomme ich das angehängte Bild. Wie man sieht, sind die Würfelaugen völlig überdimensioniert. Wo steckt der Denkfehler?


nirgendwo, denn \psdice verwendet selbst \psscalebox und da gibt es Probleme.
Aber da ist sowieso eine Macke in \psdice, wie ich gerade sehe. Entweder
du benutzt folgendes Beispiel oder ersetzt \psdice in pstricks-add durch das untere


\documentclass[12pt,ngerman,parskip]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{pstricks-add}
\makeatletter
\def\WuerfelzDfuenf{\pst@object{WuerfelzDfuenf}}
\def\WuerfelzDfuenf@i#1{%
\pst@killglue%
\begingroup%
\use@par%
\pspicture(1,1)
\rput[lb](0.5,0.5){\psdice[fillstyle=solid,fillcolor=#1!25]{3}}
\endpspicture\endgroup\ignorespaces}
%
\def\psdice{\pst@object{psdice}}
\def\psdice@i#1{{%
\pst@killglue
\addbefore@par{framearc=0.3,linewidth=1pt}%
\use@par%
\psframe(-0.5,-0.5)(0.5,0.5)%
\ifodd#1 \qdisk(0,0){3pt}\else\qdisk(-0.3,-0.3){3pt}\qdisk(0.3,0.3){3pt}\fi
\ifcase#1%
\or\or\or\qdisk(-0.3,-0.3){3pt}\qdisk(0.3,0.3){3pt}\or%
\qdisk(-0.3,0.3){3pt}\qdisk(-0.3,-0.3){3pt}\or
\qdisk(-0.3,-0.3){3pt}\qdisk(0.3,0.3){3pt}\or
\qdisk(-0.3,0.3){3pt}\qdisk(-0.3,-0.3){3pt}\or
\qdisk(-0.3,0){3pt}\qdisk(0.3,0){3pt}%
\fi%
\ignorespaces%
}}
\makeatother
\begin{document}

\WuerfelzDfuenf{red}
\WuerfelzDfuenf[unit=2]{blue}

\end{document}

Herbert

Sabrina.Dankers
30-06-2008, 14:13
Okay. Dann muss ich mir wohl die Würfel selber zurechtbasteln. Denn das hier funktioniert dann nur für den Würfel mit 1, 2 oder 3 Punkten und ich brauche ja alle Würfelaugen. Ich steig leider jetzt auf die schnelle nicht soweit durch den Code, dass ich ihn für die anderen Würfelaugen auf die schnelle ändern könnte und die Zeit drängt leider.

voss
30-06-2008, 14:15
Okay. Dann muss ich mir wohl die Würfel selber zurechtbasteln. Denn das hier funktioniert dann nur für den Würfel mit 1, 2 oder 3 Punkten und ich brauche ja alle Würfelaugen. Ich steig leider jetzt auf die schnelle nicht soweit durch den Code, dass ich ihn für die anderen Würfelaugen auf die schnelle ändern könnte und die Zeit drängt leider.

hatte falsch kopiert:


\def\psdice{\pst@object{psdice}}
\def\psdice@i#1{{%
\pst@killglue
\addbefore@par{framearc=0.3,linewidth=1pt}%
\use@par%
\psframe(-0.5,-0.5)(0.5,0.5)%
\ifodd#1 \qdisk(0,0){3pt}\else\qdisk(-0.3,-0.3){3pt}\qdisk(0.3,0.3){3pt}\fi
\ifcase#1%
\or\or\or\qdisk(-0.3,-0.3){3pt}\qdisk(0.3,0.3){3pt}% 3
\or\qdisk(-0.3,0.3){3pt}\qdisk(0.3,-0.3){3pt}% 4
\or\qdisk(-0.3,-0.3){3pt}\qdisk(0.3,0.3){3pt}% 5
\qdisk(-0.3,0.3){3pt}\qdisk(0.3,-0.3){3pt}
\or\qdisk(-0.3,0.3){3pt}\qdisk(0.3,-0.3){3pt}% 6
\qdisk(-0.3,0){3pt}\qdisk(0.3,0){3pt}%
\fi%
\ignorespaces%
}}

Herbert

Sabrina.Dankers
30-06-2008, 14:27
Okay! Danke. So funktioniert das. Aber komischerweise stimmt wohl irgendwas mit den Abhängigkeiten bei meinem großen Dokument nicht. Wenn ich die Würfel mit unit=2 verwende ist es ideal. Aber ohne die unit=2 sind die Würfelpunkte wieder viel zu groß. Macht aber nix. Denn dann sind sie eh zu klein.

voss
30-06-2008, 14:37
Okay! Danke. So funktioniert das. Aber komischerweise stimmt wohl irgendwas mit den Abhängigkeiten bei meinem großen Dokument nicht. Wenn ich die Würfel mit unit=2 verwende ist es ideal. Aber ohne die unit=2 sind die Würfelpunkte wieder viel zu groß. Macht aber nix. Denn dann sind sie eh zu klein.

Mist, die Punkte hatte ich absolut gesetzt.


\def\psdice{\pst@object{psdice}}
\def\psdice@i#1{{%
\pst@killglue
\addbefore@par{framearc=0.3,linewidth=1pt}%
\use@par%
\psframe(-0.5,-0.5)(0.5,0.5)%
\ifodd#1 \qdisk(0,0){0.1\psunit}\else\qdisk(-0.3,-0.3){0.1\psunit}\qdisk(0.3,0.3){0.1\psunit}\fi
\ifcase#1%
\or\or\or\qdisk(-0.3,-0.3){0.1\psunit}\qdisk(0.3,0.3){0.1\psunit}% 3
\or\qdisk(-0.3,0.3){0.1\psunit}\qdisk(0.3,-0.3){0.1\psunit}% 4
\or\qdisk(-0.3,-0.3){0.1\psunit}\qdisk(0.3,0.3){0.1\psunit}% 5
\qdisk(-0.3,0.3){0.1\psunit}\qdisk(0.3,-0.3){0.1\psunit}
\or\qdisk(-0.3,0.3){0.1\psunit}\qdisk(0.3,-0.3){0.1\psunit}% 6
\qdisk(-0.3,0){0.1\psunit}\qdisk(0.3,0){0.1\psunit}%
\fi%
\ignorespaces%
}}

Herbert

Sabrina.Dankers
30-06-2008, 14:42
Hi,

das habe ich auch gerade schon gemerkt. Ist aber nicht so schlimm gewesen. Werde das aber noch ändern, damit ich es in Zukunft weiterverwenden kann. Komisch war nur, dass das in meinem Dokument sehr viel mehr auffällt als in der Probedatei. Deshalb hat mich das irritiert, aber egal.

Sabrina.Dankers
30-06-2008, 16:05
Hi,

ich hab das jetzt auch fast so von dir übernommen. Nur die Liniendicke des Rechtecks/Quadrats habe ich auch noch in Abhängigkeit von der Einheit gesetzt.



\def\psdice{\pst@object{psdice}}

\def\psdice@i#1{{%

\pst@killglue

\addbefore@par{framearc=0.3,linewidth=0.01\psunit} %

\use@par%

\psframe(-0.5,-0.5)(0.5,0.5)%

\ifodd#1 \qdisk(0,0){0.1\psunit}\else\qdisk(-0.3,-0.3){0.1\psunit}\qdisk(0.3,0.3){0.1\psunit}\fi

\ifcase#1%

\or\or\or\qdisk(-0.3,-0.3){0.1\psunit}\qdisk(0.3,0.3){0.1\psunit}% 3

\or\qdisk(-0.3,0.3){0.1\psunit}\qdisk(0.3,-0.3){0.1\psunit}% 4

\or\qdisk(-0.3,-0.3){0.1\psunit}\qdisk(0.3,0.3){0.1\psunit}% 5

\qdisk(-0.3,0.3){0.1\psunit}\qdisk(0.3,-0.3){0.1\psunit}

\or\qdisk(-0.3,0.3){0.1\psunit}\qdisk(0.3,-0.3){0.1\psunit}% 6

\qdisk(-0.3,0){0.1\psunit}\qdisk(0.3,0){0.1\psunit}%

\fi%

\ignorespaces%

}}


LG Sabrina