tikz - Ausrichtung scope und axis

Tabellen und Grafiken erstellen und anordnen


dralban
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: Mi 30. Mär 2016, 19:00

tikz - Ausrichtung scope und axis

Beitrag von dralban »

Hallo zusammen!
Vielen Dank für die Aufnahme und vielen Dank für viel indirekte Hilfe, die ich mir bis jetzt aus dem Forum geholt habe.

Für mein aktuelles, nicht ganz triviales, Problem hab ich aber leider keine Antwort gefunden.

Ich würde gerne im dreidimensionalen ein Netz zeichnen auf dem ein Zylinder sitzt.

Der Zylinder ist vorhanden, das Netz ist auch vorhanden.
Leider hapert es an der Ausrichtung zueinander. Ich kapier irgendwie nicht warum der in der "axis"-Umgebung gezeichnete Zylinder nicht zum Netz passt, das in der "Scope"-Umgebung gezeichnet wurde.
Hauptsächlich stellen sich mir folgende Fragen:
- Warum passt die Sicht bzw. die Ausrichtung der Koordinatensysteme von scope und axis nicht zusammen?
- Wie kann ich die Spitze des Kegels auf den vorbereiteten Marker setzen?
- Warum passt die Drehung der Koordinatensysteme über "tdplot_main_coords" des tikzpicture und über view=... der axis-Umgebung nicht zusammen?
- Kann ich die sehr gewöhnungsbedürftige Angabe mit Drehung um x-und z-Achse bei tdplot_main_coords ändern?

Fragen über Fragen :?: :?:

Vielleicht kann der Eine oder Andere ja eine davon beantworte!?
Vielen vielen Dank schon mal!!!

EDIT:
Doppelten Dank Besserwisser!
- der Header kam aus dem Online-Editor. Habe die Zeilen aus meinem Header eingefügt)
- Keine Ahnung wie ich auf 3dplot statt tikz-3dplot komme. Verwende das zum ersten Mal. Mich wunderts nur, dass es überhaupt funktioniert hat
\documentclass[a4paper,12pt,twoside,halfparskip,openright,cleardoubleempty,bibtotoc,liststotoc,tablecaptionabove]{scrreprt}
\usepackage{ngerman}
\usepackage[utf8]{inputenc}
\usepackage[pdftex]{graphicx}
\usepackage{hyperref}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\begin{document}

\begin{figure}
% rotation around x and around z
\tdplotsetmaincoords{15}{0}	
\begin{tikzpicture}%[tdplot_main_coords]
	\coordinate (coosys0) at (0,0,0);
	
	\def\uh{0.15}
	\def\xmax{6.5}
	\def\ymax{6.5}
	\def\h{4}
	\def\r{2}
		
	\begin{scope}[canvas is xz plane at y=0]
		\draw[black,fill=black!10] (\xmax/2,\ymax/2) circle (\r);
		\draw[fill=black!50] (\xmax/2-0.25,\ymax/2-0.25) rectangle ++(0.5,0.5); 
		
		\foreach \i in {0.,0.5,...,\xmax} {
			\draw[black!70] (\i,-\uh) -- (\i,\ymax+\uh);
		}
		\foreach \i in {0.,0.5,...,\ymax} {
			\draw[black!70] (0-\uh,\i) -- (\xmax+\uh,\i);
		}
		\draw[fill=black] (\xmax/2,\ymax/2) circle (1pt);
	\end{scope}
	
	\draw plot [mark=*, mark size=2] coordinates{(\xmax/2,\h,\ymax/2)};
	\draw[dashed] (\xmax/2,\h,\ymax/2) -- (\xmax/2,0,\ymax/2);
	
	\begin{axis}[
	%anchor=origin,
	%view={30}{15},
	axis lines=none,
	domain=0:-1,
	y domain=0:2*pi, 
	z buffer=sort,
	colormap={custom}{color(0)=(black!50) color(1)=(black!50)},
	opacity=0.3,
	samples=10, samples y=50]

	\addplot3[surf,shader=interp,semitransparent] 
	({x*cos(deg(y))},{x*sin(deg(y))},{x});

	\end{axis}
	
\end{tikzpicture}
\end{figure}
\end{document}
Dateianhänge
latex_cone_grid.png
latex_cone_grid.png (8.46 KiB) 1555 mal betrachtet
Zuletzt geändert von dralban am Do 31. Mär 2016, 16:34, insgesamt 5-mal geändert.

Besserwisser

Beitrag von Besserwisser »

Bitte editiere deinen Beitrag und entferne dabei den Haken bei "BBCode in diesem Beitrag deaktivieren", damit der Code korrekt angezeigt werden kann.

Und wenn du tikz-3dplot verwendest, warum lädst du es dann nicht mit \usepakche{tikz-3dplot}, sondern mit \usepackage{3dplot}? Ein Paket 3dplot kann ich jedenfalls unter dem von dir angegebenen Link nicht finden. Das Paket tikz-3dplot wäre hingegen sogar Bestandteil von MiKTeX und TeX-Live.

Übrigens solltest du utf8x nur verwenden, wenn utf8 wirklich nicht genügt. Du ersparst dir damit ggf. Probleme mit anderen Paketen.

dralban
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: Mi 30. Mär 2016, 19:00

Beitrag von dralban »

Ok, jetzt ist der Beitrag wirklich editiert.
Sorry, irgendwie "aktivieren" gelesen statt "deaktivieren"

dralban
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: Mi 30. Mär 2016, 19:00

Beitrag von dralban »

Hab eine Lösung über 2D-Scope-Umgebungen innerhalb der axis gefunden.

Kapier ein paar Sachen nicht - z.B. warum der Kreis ( \draw[black,fill=blue!20,opacity=0.7] (-1,-1) circle (1); ) bei -1,-1 liegt, aber es läuft.

Gruß

\documentclass[a4paper,12pt,twoside,halfparskip,openright,cleardoubleempty,bibtotoc,liststotoc,tablecaptionabove]{scrreprt} 
\usepackage{ngerman} 
\usepackage[utf8]{inputenc} 
\usepackage[pdftex]{graphicx} 
\usepackage{hyperref} 
\usepackage{amsmath} 
\usepackage{amssymb} 
\usepackage{tikz} 
\usepackage{tikz-3dplot} 
\usepackage{pgfplots} 
\pgfplotsset{compat=newest} 

\begin{document} 

\begin{figure}
		\begin{tikzpicture}[scale=2.5]%[tdplot_main_coords] 
			\coordinate (coosys0) at (0,0,0); 
			
			\begin{axis}[
			height=6cm,width=8cm,
			xlabel=$x$,ylabel=$y$,
			anchor=origin,
			axis equal, 
			axis lines=none,	 
			domain=0:-1, 
			y domain=0:2*pi, 
			z buffer=sort, 
			samples=10, samples y=50] 
			
			%\draw plot [mark=*, mark size=1] coordinates{(0,0,-1)};	
			
			\pgfplotsforeachungrouped \i in {-1.125,-0.875,...,1.125}{ 
				\edef\temp{\noexpand\draw[black!70,thin] (\i,-1.2,-1) -- (\i,1.2,-1);} 
				\temp 
			};
			
			\pgfplotsforeachungrouped \i in {-1.125,-0.875,...,1.125}{ 
				\edef\temp{\noexpand\draw[black!70,thin] (-1.2,\i,-1) -- (1.2,\i,-1);} 
				\temp 
			};
			
			\begin{scope}[canvas is xy plane at z=-1] 
			\draw[black,fill=blue!20,opacity=0.7] (-1,-1) circle (1);
			\draw[black,fill=black] (-1,-1) circle (0.05);
			\end{scope}
			
			\draw[dashed] (0,0,-1) -- (0,0,0);
			
			\addplot3[surf,shader=interp,opacity=0.05,colormap={custom}{color(0)=(blue!20) color(1)=(blue!100)},opacity=0.8] 
			({x*cos(deg(y))},{x*sin(deg(y))},{x});
			%\draw plot [mark=*, mark size=1] coordinates{(0,0,0)};
			\end{axis}
		\end{tikzpicture}
\end{figure}

\end{document}

Antworten