[PSTricks] Tangentialebene an (Kugel- ) Oberfläche

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


Klaus
Forum-Century
Forum-Century
Beiträge: 184
Registriert: Do 27. Jan 2011, 19:30

[PSTricks] Tangentialebene an (Kugel- ) Oberfläche

Beitrag von Klaus »

Hi Leute,

ich würde gerne etwas in diesem Stile selbst erstellen.

Jetzt sind gerade bei PSTricks die Möglichkeiten natürlich vielfältig und die 3D Beispiele geben auch schon einiges her.

Ich habe bisher den Eindruck, dass es z.B. für die Fläche und angestrebte Tangentialebene zwei Möglichkeiten gibt:
Entweder man baut das ganze mathematisch auf, sucht sich also ein Paket, in dem man die ganzen Parameter in Form von Funktionsvorschriften eingibt.
Oder man nimmt vordefinierte Makros wie z.B. \pstThreeDSphere.

Hinzu kommt ja, dass ich dann die Ebene tangential an die Oberfläche anlegen möchte. Daraus ergibt sich dann für mich die Frage:
Wenn ich das ganze z.B. mathematisch aufziehe, muss ich dann auch die Tangentialebene selbst ausrechnen für einen Punkt?

Oder gibt es Pakete in denen die Makros das selbst erledigen? Das würde die Arbeit um einiges erleichtern.

Viele Grüße,
Klaus.
Bei LaTex führen mir manchmal einfach zu viele Wege nach Rom.

Klaus
Forum-Century
Forum-Century
Beiträge: 184
Registriert: Do 27. Jan 2011, 19:30

Beitrag von Klaus »

Hi,

also ich habe da mal was zusammengebastelt. Wußte ich doch, dass das geht. Das Zauberwort heißt solidmemory. :lol:
\documentclass[a4paper]{scrartcl}
\usepackage{pstricks,pstricks-add,pst-solides3d,pst-3dplot}
\usepackage{xcolor}
\pagestyle{empty}
\begin{document}
\begin{pspicture}(-5,-5) (5,5)
\psset{unit=.75,solidmemory}
\psSolid[object=calottesphere,%
r=2,name=A]
\psSolid[object=plan, % Ebene
definition=solidface, % benötigen Aufpunkt und Normalenvektor
fillcolor=lightgray,%
opacity=.3,%
args=A 1]
\psSolid[object=vecteur,%
args=2 0 0](0,0,2)%
% define a function
%\defFunction[algebraic]{helice}(t){2*cos(t)}{0}{2*sin(t)}
%\psSolid[object=courbe,%
%r=0,%
%range=0 3.14,%
%linecolor=blue,linewidth=0.3,
%resolution=360,
%function=helice]
% parametric polot
%\parametricplotThreeD[%
%xPlotpoints=200,%
%linecolor=blue,linewidth=1.5pt,%
%plotstyle=curve](0,180){%
%2 t cos mul
%0
% t sin mul}
% plot a circle
\pstThreeDCircle[beginAngle=0,endAngle=180]%
(0,0,0)(2,0,0)(0,0,2)
\axesIIID(0,0,0)(3,3,3)
\end{pspicture}
\end{document}
Bei dem momentanen Code ist der Halbbogen noch zu klein, ich verstehe nicht, warum er nicht auf die Größe der Halbkugel passt. :-(

Weiterhin habe ich noch (auskommentiert) probiert:
% define a function
\defFunction[algebraic]{helice}(t){2*cos(t)}{0}{2*sin(t)}
\psSolid[object=courbe,%
r=0,%
range=0 3.14,%
linecolor=blue,linewidth=0.3,
resolution=360,
function=helice]
Aber da steht in der Doku, dass dieser Makro noch mit Vorsicht zu genießen ist. Bei mir hat er nicht richtig funktioniert.

Und das nächste funktioniert auch nicht so richtig, da fällt der Bogen auch nicht mit der Halbkugel zusammen.
% parametric plot
\parametricplotThreeD[%
xPlotpoints=200,%
linecolor=blue,linewidth=1.5pt,%
plotstyle=curve](0,180){%
2 t cos mul
0
 t sin mul}
Und nochwas: Kann ich diese ganzen Kugeln und Halbkugeln irgendwie mehr runder aussehen lassen? Diese Aufmachung mit den Segmenten lässt das ganze etwas 'eckig' wirken.

Gruß,
Klaus.
Bei LaTex führen mir manchmal einfach zu viele Wege nach Rom.

Klaus
Forum-Century
Forum-Century
Beiträge: 184
Registriert: Do 27. Jan 2011, 19:30

Beitrag von Klaus »

So,
also nach einigem rumprobieren funktioniert folgendes, auch wenn mir die einzelnen Parameter noch nicht ganz klar sind:
\documentclass{standalone}
\usepackage{pstricks,pstricks-add,pst-solides3d,pst-3dplot}
\usepackage{xcolor}
\pagestyle{empty}
\begin{document}
\begin{pspicture}(-9,-4) (7,8)
\psset{unit=.75,solidmemory}
\axesIIID(-3,-3,0)(3,3,3)
\psSolid[object=calottesphere,%
opacity=.5,%
r=2,name=A]
\psSolid[object=plan, % Ebene
definition=solidface, % benötigen Aufpunkt und Normalenvektor
fillcolor=lightgray,%
opacity=.3,%
args=A 1]
% <-> First curve with tangent vector
\psSolid[object=vecteur,%
linecolor=blue,%
args=2 0 0](0,0,2)%
\defFunction[algebraic]{F}(t){2*cos(t)}{0}{2*sin(t)}
\psSolid[object=courbe,%
r=0.005,%
range=0 2.355,%
linecolor=blue,linewidth=0.1,%
resolution=360,%
function=F]
% <-> Second curve with tangend vector
\psSolid[object=vecteur,%
linecolor=red,%
args=0 2 0](0,0,2)%
\defFunction[algebraic]{G}(t){0}{2*cos(t)}{2*sin(t)}
\psSolid[object=courbe,%
r=0.005,%
range=0 2.355,%
linecolor=red,linewidth=0.1,%
resolution=360,%
function=G]
\end{pspicture}
\end{document} 
So verstehe ich z.B. bei dem object courbe den Parameter r nicht. Zumal er in den Beispielen der Dokumentation immer Null gesetzt wird.

Gruß,
Klaus.
Dateianhänge
tangentialebene.pdf
(41.43 KiB) 517-mal heruntergeladen
Bei LaTex führen mir manchmal einfach zu viele Wege nach Rom.

Antworten