Moin Zusammen,

ich brauche einen Zylinder wie das Beispiel aber statt eine komplette Runde in Umfangsrichtung würde 1/3 Kreis haben (120 Grad). Kann jemand mir dabei helfen? Vielen Dank im Voraus. Grüße

Open in Online-Editor
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric,calc}
\begin{document}
\begin{tikzpicture}
\begin{scope}[rotate=15]
\node[transform shape,ellipse,minimum height=2cm,minimum width=1cm,draw,outer sep=0] (a) {};
\clip[scale=0.8,postaction={line width=0.8pt,draw}] (a) circle (0.5 and 1);
\draw[scale=0.8] ([shift={($0.75*({cos(15)},{sin(15)})$)}]a) circle (0.5 and 1);
\draw(a.west) -- (a.east);
\end{scope}
\begin{scope}[rotate=15]
\draw (a.north) --  ++(0.75,0) arc (90:-90:0.5cm and 1cm-2\pgflinewidth) -- (a.south);
\draw (a.east) ++(0.75,0) -- ++(1cm,0) (a.west) ++(-0.75,0) -- ++(0.9cm,0);
\end{scope}
\end{tikzpicture}
\end{document}

gefragt 17 Aug '16, 11:24

vague_creature's gravatar image

vague_creature
21132226
Akzeptiert-Rate: 0%

An und für sich, ist das mit den arc(<Start-Winkel>:<End-Winkel>:<Erste Halbachse> and <Zweite Halbachse>)-Befehlen kein Problem. Kannst du ein Bild einfügen, welches das Ergebnis skizziert oder beschreiben, von wo nach wo der Kreis geöffnet werden soll?

(17 Aug '16, 13:26) sudo

Hi, es ist mir eigentlich egal, wo die Kurve anfängt oder endet kann ich später alles anpassen...haupsache möchte ich eine 120 grad Segment haben

(17 Aug '16, 14:40) vague_creature

Das folgende Beispiel musst du mit xelatex laufen lassen:

Open in Online-Editor
\documentclass{article}
\usepackage{pst-solides3d}
\begin{document}

\psset{unit=0.6}
\psset{lightsrc=viewpoint,viewpoint=50 35 25 rtp2xyz,Decran=50}
\begin{pspicture}(-6,-3)(5,4)
\psSolid[object=line,args=0 -7 0 0 5 0]
\defFunction{F}(t){t cos 3 mul}{t sin 3 mul}{}
\defFunction{G}(t){t cos 2 mul}{t sin 2 mul}{}
\psSolid[object=prisme,h=8,fillcolor=black!30,
  RotX=90,base=0 120 {F} CourbeR2+
  120 0 {G} CourbeR2+,grid](0,4,0)
%\axesIIID(3,4,3)(8,6,7)
\end{pspicture}

\psset{lightsrc=viewpoint,viewpoint=50 90 -25 rtp2xyz,Decran=50}
\begin{pspicture}(-6,-3)(5,4)
\defFunction{F}(t){t cos 3 mul}{t sin 3 mul}{}
\defFunction{G}(t){t cos 2 mul}{t sin 2 mul}{}
\psSolid[object=prisme,h=8,fillcolor=black!30,
RotX=90,base=0 120 {F} CourbeR2+
120 0 {G} CourbeR2+,grid](0,4,0)
%\psSolid[object=line,args=0 -7 0 0 7 0]
%\axesIIID(3,4,3)(8,6,7)
\end{pspicture}

\end{document}

alt text

Permanenter link

beantwortet 17 Aug '16, 21:01

crazyhorse's gravatar image

crazyhorse
4323
Akzeptiert-Rate: 26%

Interessante Alternative. Kannst du noch etwas schreiben, was pst-solides3d für dich von TikZ abhebt, wo man es herkriegt, was man beachten sollte?

(17 Aug '16, 21:17) sudo

@sudo Ich vermute, das war bewusst eine kurze Demo, und man könnte sich über texdoc.net/pkg/pst-solides3d informieren... andernfalls müsste man sehr tief Luft holen :-) in Kürze: richtige 3D-Projektion mit einer Menge vordefinierter parametrisierter Körper mit Lichtquelle, das gibt es halt in TikZ nicht bzw. man behilft sich mit Eigenkonstruktion und Shading o.a. Es basiert auf PSTricks.

(17 Aug '16, 22:44) stefan ♦♦

@stefan danke dir erstmal und zweitens kriege ich "undefined control sequence" Error beim kompilieren (mit xelatex) bei Definition der Funktionen. Soll ich die Usepackage per hand installieren?

(18 Aug '16, 09:32) vague_creature

@vague_creature Dieser Fehler kommt mit \defFunction, aber mit pdfLaTeX... stelle sicher, dass es wirklich XeLaTeX ist. Du kannst auch eine neue Frage stellen mit Folgefragen oder Fehlermeldungen oder Installations-Fragen. Dieser Code ist übrigens von @crazyhorse, ich war nur so frei zu kommentieren.

(18 Aug '16, 11:26) stefan ♦♦

@vague_creature: Welchen Editor verwendest du? Dann kann man dir genau sagen, wo man das einstellt, dass xelatex genommen wird.

(18 Aug '16, 18:47) crazyhorse

@sudo: wenn du es vergleichen willst, dann nur pst-solides3d mit pgfplots oder tikz-3dplot. pst_solides3d kann verdeckte Linien und Flächen handhaben. Der Vergleich ansich ist aber müssig, da TikZ und PSTricks zwei völlig unterschiedliche Ansätze sind.

(18 Aug '16, 19:35) crazyhorse

Mir ging es nicht unbedingt um einen Vergleich und es sollte auch kein langer Text werden. Die Schlagwörter Verdeckte Linien und Körper mit Lichtquelle sind auf jeden Fall schon gut.

PS: Für manchen Googler ist ein Link zu CTAN ganz nett.

(18 Aug '16, 21:44) sudo
Ergebnis 5 von 7 show 2 more comments

Ich habe mal etwas ähnliches gemacht. Vielleicht kannst du davon etwas ableiten:

Open in Online-Editor
\documentclass[tikz, margin=1mm]{standalone}
\newcommand{\LongHalfLarge}{2.6}
\newcommand{\ShortHalfLarge}{1.3}
\newcommand{\LongAndShortHalfLarge}{2.6 and 1.3}
\newcommand{\LongHalfSmall}{2}
\newcommand{\ShortHalfSmall}{1}
\newcommand{\LongAndShortHalfSmall}{2 and 1}
\begin{document}
\tikzset{mono/.style={fill=gray!40}, mat/.style={fill=gray!10}, sleeve/.style={fill=gray}}
%\tikzset{debug/.style={draw=magenta, very thick}} % For debugging only
\tikzset{debug/.style={}} % For final version
\begin{tikzpicture}[rotate=105]
%% Blech hinten
\coordinate (blech oben) at (0,0);
\coordinate (blech unten) at (0,-6);
\coordinate (mono oben) at (0,-.5);
\coordinate (mono unten) at (0,-5.5);
\coordinate (matte oben) at (0,-1);
\coordinate (matte unten) at (0,-5);
%% Blech hinten
\draw[sleeve] (blech unten) ++ (0:\LongHalfLarge) arc (0:180:\LongAndShortHalfLarge) -- ({blech oben} -| {(-\LongHalfLarge,1)})  arc (180:0:\LongAndShortHalfLarge) -- cycle;
%% Matte hinten
\draw[mat] (matte unten) ++ (0:\LongHalfLarge) arc (0:180:\LongAndShortHalfLarge) -- ({matte oben} -| {(-\LongHalfLarge,1)})  arc (180:0:\LongAndShortHalfLarge) -- cycle;
\draw[mat] (matte oben) ++ (180:\LongHalfSmall) -- ++ (180:\LongHalfLarge - \LongHalfSmall) -- ({matte unten} -| {(-\LongHalfLarge,0)}) -- ++ (0:\LongHalfLarge - \LongHalfSmall) -- cycle;
%% Mono
\draw[mono] (mono unten) ++ (0:\LongHalfSmall) arc (360:180:\LongAndShortHalfSmall) -- ({mono oben} -| {(-\LongHalfSmall,1)})  arc (180:0:\LongAndShortHalfSmall) -- cycle;
\draw[mono] (mono oben) ++ (0:\LongHalfSmall) arc (0:360:\LongAndShortHalfSmall) -- cycle;
%% Matte vorne rechts
\path [debug] (matte oben) ++ (0:\LongHalfLarge) arc (0:-60:\LongAndShortHalfLarge) coordinate (mat 0);
\draw [mat] (matte oben) ++ (0:\LongHalfSmall) arc (0:-60:\LongAndShortHalfSmall) coordinate (mat 1) -- (mat 0) arc(-60:0:\LongAndShortHalfLarge);
\path [debug] (matte unten) ++ (0:\LongHalfLarge) arc (0:-60:\LongAndShortHalfLarge) coordinate (mat 3);
\draw [mat] (matte unten) ++ (0:\LongHalfSmall) arc (0:-60:\LongAndShortHalfSmall) coordinate (mat 2) -- (mat 3) arc(-60:0:\LongAndShortHalfLarge);
\draw[mat] (mat 0) -- (mat 1) -- (mat 2) -- (mat 3) -- cycle;
%% Blech vorne rechts
\path [debug] (blech oben) ++ (0:\LongHalfLarge) arc (0:-60:\LongAndShortHalfLarge) coordinate (blech 0);
\draw [sleeve] (blech unten) ++ (0:\LongHalfLarge) arc (0:-60:\LongAndShortHalfLarge) -- (blech 0) arc (-60:0:\LongAndShortHalfLarge) -- cycle;
%% For Debugging only
\path [debug] (matte unten) circle (3pt);
\path [debug] (matte oben) circle (3pt);
\path [debug] (blech unten) circle (3pt);
\path [debug] (blech oben) circle (3pt);
\path [debug] (mono unten) circle (3pt);
\path [debug] (mono oben) circle (3pt);
\end{tikzpicture}
\end{document}

Ich habe dafür einfach die Teile zerlegt und von hinten nach vorne gezeichnet.

Mono-Matte-Blech

Permanenter link

beantwortet 17 Aug '16, 15:16

sudo's gravatar image

sudo
2.0k51521
Akzeptiert-Rate: 39%

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×731
×2

gestellte Frage: 17 Aug '16, 11:24

Frage wurde gesehen: 7,833 Mal

zuletzt geändert: 18 Aug '16, 21:44