PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Geht das hier schöner mit Tikz/PSTricks/Sketch?



kinderradfahrer
18-03-2009, 21:09
Hallo,

ich möchte gerne sowas wie das angefügte Bild (PDF + Latexcode)
schöner machen:



\begin{tikzpicture}[scale=2]

\draw (-1,0,1) -- (1,0,1) -- (0,1,0) -- cycle;
\draw[dotted](-1,0,1) -- (0,0,0) -- (1,0,1);
\draw[dotted](0,0,0) -- (0,1,0);

\shade[ball color = gray] (-0.7,0.3,0.7) .. controls (0.1,0.3,0.2) .. (0.6,0.4, 0.6)
.. controls (0.2,0.35,0.2) .. (0,0.3,0)
.. controls (-0.2,0.5,0.2) .. (-0.7,0.3,0.7);
\draw[color = red] (-0.7,0.3,0.7) .. controls (0.1,0.3,0.2) .. (0.6,0.4, 0.6)
.. controls(0.2,0.35,0.2) .. (0,0.3,0)
.. controls (-0.2,0.5,0.2) .. (-0.7,0.3,0.7);
\end{tikzpicture}


Im Prinzip ist es eine algebraische Fläche, beschränkt auf einen Tetraeder.
Habe vor knapp 2 Jahren diese (hier vereinfachte), für mich damals befriedigende, Lösung in TikZ erstellt, aber irgendwie genügt es meinen Ansprüchen nicht mehr, da es
streng genommen so nicht ganz richtig ist und mir die Perspektive fehlt, die
ich mit Sketch oder PSTricks und pst-solides3d erreichen könnte.

Ich könnte die algebraische Fläche mit PSTricks rendern, wüsste dann aber nicht,
wie bzw. ob ich es auf den Tetraeder clippen könnte. Im PSTricks-Buch, in der solides3d-Doku und im pgf-manual konnte ich leider auch nichts passendes finden.

Wenn jemand auch nur eine Teilidee hat, wie ich das besser (TikZ oder PSTricks)
hinbekommen kann, wäre das toll.

grüße

mechanicus
18-03-2009, 21:34
Hallo,

vielleicht noch eine Frage? Die algebraische Fläche: ist das eine Ebene?

Gruß
Marco

kinderradfahrer
18-03-2009, 22:32
Hallo,

vielen Dank für die schnelle Reaktion.

ich denke, es ist mehr eine gebogene Fläche; unter einer Ebene würde
ich eher eine durch drei Punkte im Raum definierte, eben ebene (sorry!), Fläche verstehen, also etwas, wo sich die Oberflächennormale nicht ändert.

Genau genommen soll es sich hier um die Nullstellenmenge eines
auf einen Tetraeder beschränkten, kubischen Polynoms in x-, y- und z handeln
( a_0*x^3 + a_1*x^2*y + a_2*x*y*z ... = 0 ).
Man kann es auch in Bernstein-Bezier-Form in Abhängigkeit der baryzentrischen
Koordinaten bezüglich des Tetraeders hinschreiben. Wenn alle (4) baryzentrischen
Koordinaten >= 0 sind, liegt der Punkt im Tetraeder.

Ich denke, man könnte es "faken" durch ein Höhenfeld über dem Dreieck,
also sowas wie z = b_0*x^3 + b_1*x^2*y ---
Nur kann ich das nicht gegen den Tetraeder clippen, soweit meine Kenntnisse reichen.

Mir wäre vlt. schon geholfen, wenn ich wüsste, wie ich eine einfache Kugel gegen die Tetraederebenen clippen könnte.
Evtl. kann ich auch eine parametrische Formel entwickeln,
die nur für Punkte innerhalb des Tetraeders
definiert ist, ansonsten 0 -- dafür bräuchte ich aber sowas wie Fälle bzw.
if-Abfragen in der Definition meiner Formel als Input für solides3d, was, glaube ich,
nicht geht.


grüße,
thomas