Archiv verlassen und diese Seite im Standarddesign anzeigen : tikz: Ellipse in Perspektive?
Hallo und moin moin,
ich möchte gern eine grafisch korrekte Ellipse in der (räumlichen) Perspektive zeichnen. Mein code
\documentclass{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage{graphicx}
\usepackage{float}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{mathrsfs}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows,positioning,calc,fit ,intersections}
\begin{document}
\begin{figure}
\beginpgfgraphicnamed{FwdOp}
\begin{center}
\begin{tikzpicture}[scale=1]
\coordinate[] (Org) at (0,0); % Nullpkt des KoordSystems
\newcommand{\xachse}{4} % Länge der pos. x-Achse
\newcommand{\yachse}{\xachse/2} % Länge der pos. y-Achse
\newcommand{\zachse}{2*\xachse} % Länge der pos. z-Achse
\newcommand{\EllHA}{0.7*\xachse} % Länge der Hauptachse der Ellipse
\newcommand{\EllNA}{0.5*\EllHA} % Länge der Nebenachse der Ellipse
% \newcommand{\Elemente}{15} % Anzahl der Elemente
% \newcommand{\Quer}{\ModBreite/130} % Höhe der Gitterstriche
% \newcommand{\LTA}{8} % Länge des LTA
% \newcommand{\STA}{3} % Länge des STA
% Beginn Koordinatensystem
\draw[-latex] ($(Org) - (0:\xachse)$) --++(0:2*\xachse) node[right] {$x$};
\draw[-latex] ($(Org) + (45+180:\yachse)$) --++(45:2*\yachse) node[right] {$y$};
\draw[-latex] ($(Org) - (90:\zachse/10)$) --++(90:\zachse) node[right] {$z$};
% Grundfläche
\draw ($(Org)+(0:\xachse*0.7)$) arc [start angle=0, end angle=-180, x radius=\EllHA, y radius=\EllNA];
\end{tikzpicture}
\end{center}
\endpgfgraphicnamed
\caption{Vorwärtsoperator}
\label{fig3}
\end{figure}
\end{document}
zeigt im Großen und Ganzen was ich gern haben möchte. Nur die Ellipse spinnt noch herum ;)
Hat jemand eine Ahnung wie ich die so zurechtgebogen bekomme, dass die Schnittpunkte mit den Achsen rechte Winkel bilden?
Viele Grüße
Thomas
Hat jemand eine Ahnung wie ich die so zurechtgebogen bekomme, dass die Schnittpunkte mit den Achsen rechte Winkel bilden?
Vielleicht ist das ein wenig irreführend formuliert. Besser wäre wahrscheinlich: "dass die Perspektive stimmt."
Denn so, wie die Ellipse jetzt in der XY-Ebene drinliegt stimmt sie ja nicht...
Viele Grüße
Thomas
... ich schon wieder ... :o
Hat denn wirklich NIEMAND eine Idee?
Hmm. Ist halt Urlaubszeit.
Moin moin,
Vielleicht ist das ein wenig irreführend formuliert. Besser wäre wahrscheinlich: "dass die Perspektive stimmt."
und wie stimmt die Perspektive? Könntest Du das mal irgendwie skizzieren?
BTW: vllt ist ja das tikz-3dplot-Paket was für Dich -- da bräuchtest Du nicht alles selbst `in Perspektive' zu rücken.;-)
MfG
Hallo rais,
Hm, ich habe keine Ahnung wie ich eine Skizze hier hochladen kann...
Ich versuch's mal mit einem Gedankenexperient:
Wir haben einen Kreis mit zwei Koordinatenachsen, die senkrecht aufeinander stehen. (X-|Y)
Wenn wir nun den Kreis um die X-Achse kippen, wird er zur Ellipse und gleichzeitig verschwindet die Y-Achse zunächst als kurzer Strich. (wenn wir noch eine Z-Achse hätten wäre sie ohnehin nicht mehr sichtbar)
in der Kavalierperspektive (http://de.wikipedia.org/wiki/Kavalierperspektive) wird dem nun abgeholfen indem einfach diese Y-Achse (in der Zeichenebene) um 45° gedreht und damit wieder sichtbar wird.
und genau hier ist mein Problem: betrachtet man die Ellipse aus 2) als halbstarren Gummi, dann beult sie bei dem gestauchten Stück stärker aus und wird in dem anderen Stück gestreckt.
--> und genau das möchte ich gern berücksichtigen.
Hoffentlich habe ich mich nicht ganz so unverständlich ausgedrückt...
Hast Du (noch) eine Idee? (das tikz-3dplot-Paket kannte ich noch nicht - mal sehen, denn ich möchte nur ungern meine ganzen Skizzen noch einmal durcharbeiten um "echtes" 3D zu erzeugen...)
Viele Grüße
Thomas
Vielleicht hilft ja dies hier weiter: http://tex.stackexchange.com/a/32087/17198
Hallo hakaze,
vielen Dank für Deinen Tip. Leider habe ich das auch schon gefunden gehabt...
Vielleicht hilft ja dies hier weiter: http://tex.stackexchange.com/a/32087/17198
Mir ist durchaus bewusst, dass es (gerade) beim tikz nichts verschenkt wird und der Aufwand mit dem Anspruch steigt. Allerdings hatte ich gehofft, dass ich nur eine einfache Lösung meines Probems übersehen habe...
Das Paket tikz-3DPlot macht auf den ersten Blick einen guten Eindruck und ich werde meine kleinen skripte wohl (oder übel) umstellen müssen. :(
Vielen Dank an Euch beide!
Thomas
Ps.: Falls wider Erwarten doch noch eine Idee auftaucht: ich werde die nächsten zwei Wochen ohnehin hier nahezu täglich vorbei schauen. Also bitte posten ;)
Leider kann ich dir da auch noch nicht weiterhelfen. Ich habe auch erst gerade angefangen, mich mit tikz/pgf zu beschäftigen.
Gerade das zweite Beispiel in dem Link, den ich gepostet hatte, erschien mir aber sehr ähnlich zu dem, was du suchst.
Viel Erfolg!
Moin Barny.G,
Hm, ich habe keine Ahnung wie ich eine Skizze hier hochladen kann...
beim Verfassen eines Beitrags gibt es einen Punkt `Anhänge verwalten', damit kannst Du diverse Formate hochladen.
Wie dem auch sei,
Ich versuch's mal mit einem Gedankenexperient:
Wir haben einen Kreis mit zwei Koordinatenachsen, die senkrecht aufeinander stehen. (X-|Y)
Wenn wir nun den Kreis um die X-Achse kippen, wird er zur Ellipse und gleichzeitig verschwindet die Y-Achse zunächst als kurzer Strich. (wenn wir noch eine Z-Achse hätten wäre sie ohnehin nicht mehr sichtbar)
in der Kavalierperspektive (http://de.wikipedia.org/wiki/Kavalierperspektive) wird dem nun abgeholfen indem einfach diese Y-Achse (in der Zeichenebene) um 45° gedreht und damit wieder sichtbar wird.
und genau hier ist mein Problem: betrachtet man die Ellipse aus 2) als halbstarren Gummi, dann beult sie bei dem gestauchten Stück stärker aus und wird in dem anderen Stück gestreckt.
ich versuchs mal mit einem entsprechenden Gedankenspiel:
wenn ich das recht verstehe, müsste diese Ellipse ihre y-Achse unter dem selben Winkel schneiden, unter dem die x-Achse die y-Achse schneidet -- und umgekehrt.
und wenn ich mir die Bilder aus hakazes Link so anschaue, scheint das genau dann der Fall zu sein, wenn der längere Radius der Ellipse -- wie heißt sowas noch? -- gleichzeitig Winkelhalbierende zu den Koordinatenachsen ist, unter denen diese Ellipse als Kreis anzusehen sei, nun, dann
genügt es vllt doch, die Ellipse nur zu drehen (um halben Winkel, unter dem die dazugehörigen Achsen dargestellt werden sollen: zwischen x- und y-Achse hast Du hier 45°, ein Start wäre, die Ellipse (bzw. deren Hälfte, eine ganze Ellipse stellst Du ja nicht dar) um 22,5° zu verdrehen (\draw[rotate=...])
evtl. musst Du Dir dann noch Sorgen über die dargestellte Größe machen, aber zumindest die dargestellte Form sollte passen.
MfG
Hallo und moin moin,
bin gerade aus einem kurzen Urlaub zurück und schwitze noch ein bisschen mein keybord voll ;) Vielen Dank für die Hinweise und Vorschläge! Speziell:
wenn ich das recht verstehe, müsste diese Ellipse ihre y-Achse unter dem selben Winkel schneiden, unter dem die x-Achse die y-Achse schneidet -- und umgekehrt.
und wenn ich mir die Bilder aus hakazes Link so anschaue, scheint das genau dann der Fall zu sein, wenn der längere Radius der Ellipse -- wie heißt sowas noch? -- gleichzeitig Winkelhalbierende zu den Koordinatenachsen ist, unter denen diese Ellipse als Kreis anzusehen sei, nun, dann
genügt es vllt doch, die Ellipse nur zu drehen (um halben Winkel, unter dem die dazugehörigen Achsen dargestellt werden sollen: zwischen x- und y-Achse hast Du hier 45°, ein Start wäre, die Ellipse (bzw. deren Hälfte, eine ganze Ellipse stellst Du ja nicht dar) um 22,5° zu verdrehen (\draw[rotate=...])
evtl. musst Du Dir dann noch Sorgen über die dargestellte Größe machen, aber zumindest die dargestellte Form sollte passen.
Zu Punkt drei muss ich mir erst einmal ein paar Gedanken machen, werde aber sehr gern Anfang der Woche darauf zurückkommen...
Viele Grüsse
Thomas
Lass das Beispiel mit XeLaTeX laufen oder latex->dvips->ps2pdf:
\documentclass{scrreprt}
\usepackage{pst-3dplot}
\begin{document}
\psset{coorType=3,IIIDxTicksPlane=yz}
\begin{pspicture}(-2,-2)(3,3)
\pstThreeDCoor[IIIDticks,zMax=3,xMin=-2,yMin=-3]%
\pstThreeDEllipse[linecolor=blue,linewidth=2pt](0,0,0)(1,0,0)(0,2,0)
\pstThreeDEllipse[linecolor=green,linewidth=2pt](0,0,1)(2,0,0)(0,1,0)
\end{pspicture}
\end{document}
http://perce.de/temp/ellipse.png
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.