PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PSTricks: pst-3dplot und pst-solides3d



rfischer
15-06-2009, 19:08
Hallo Zusammen,

nachfolgend wird mit Hilfe von pst-solides3d ein Ellipsoid
und eine Tangentialfläche zum Ellipsoid gezeichnet (siehe Anhang).
Vorhanden sind zwei Vektoren:
-ein Vektor vom Zentrum des Ellipsoids durch den Berührungspunkt Ellipsoid
und Tangentialfläche (physikalisch: Winkelgeschwindigkeit)
-ein Vektor vom Zentrum des Ellipsoids, der senkrecht zur Tangentialfläche
steht (physikalisch: Drehimpuls)

Nun möchte ich die beiden Vektoren mit Labels ($\omega$, $L$) im Mathematikmodus bezeichnen, indem z.B. der Endpunkt des Vektors
über pst-solides3d ermittelt wird.

Folgende Fehlversuche:

1) Direkt als Attribut des berechneten Punktes:
\psSolid[object=point,definition=...,args=...,action=none,
name=A,text={$\omega$}] funktioniert nicht. Es wird nicht in den
Mathematikmodus umgeschaltet. es wird $\omega$ angezeigt

2) Irgendein Makro, welches die x,y,z Werte des in 1) definierten
Punktes name = A liefert? Dann könnte auf die pst-3dplot
Möglichkeiten zugegriffen werden:
\psPoint(x,y,z){MyPoint}
\nput{90}{MyPoint}{$\omega$}

3) Irgendein Makro, welches die x,y Werte des Punktes name = A liefert.
Würde ja schon ausreichen um mit pnode (anstelle psPoint) einen
Knoten zu definieren.

Eine Lösung nach Punkt 2) oder 3) wäre von besonderem Interesse,
da es dann möglich wäre mehr Elemente von pst-3dplot in pst-solides3d
zu verwenden, falls die (x,y,z) Koordinaten in pst-solides3d nicht
explizit (sondern nur berechnet) vorliegen.

Beste Grüße,
Robert.



\documentclass[10pt,a4paper,twoside]{book}
\usepackage[latin1]{inputenc}
\usepackage{ngerman,a4wide}
\usepackage{amsmath,amsfonts,amssymb,textcomp}
\usepackage[amsmath,framed,thmmarks,thref]{ntheorem}
\usepackage{thmbox}
\usepackage{vector}
\usepackage{etex}
\usepackage{morefloats}
\usepackage{graphicx}
\usepackage{xkeyval}% Important to have it before
\usepackage{pst-pdf}
\usepackage{pst-all,pst-func,pst-xkey,pst-eucl,pst-math,pst-map3d,
pst-map3dII,pst-vue3d,pst-solides3d,pst-light3d,pst-slpe,infix-RPN,
pst-lens,pst-tree,pst-ob3d}
\usepackage{pst-3dplot}% Important to have it at the end!
\usepackage{epsfig}
\usepackage{floatflt} %Text around figures
\usepackage[german]{varioref}
\usepackage[margin=8pt,font=footnotesize,labelfont=bf]{caption}
\usepackage{ifthen}
\usepackage{pifont} %dinglist
\usepackage{fancyhdr}
\usepackage{fancybox}
\usepackage{multirow} %Array
\usepackage{array} %Array
\usepackage{enumerate}
\usepackage{ifsym}
\usepackage[normalem]{ulem} %Undeline Mode in Text
\usepackage{txfonts}
\usepackage{cancel}
\usepackage{caption}
\usepackage{datatool} %Data Tool / Arithmetic
\usepackage{intcalc} %Simple Arithmetic
\usepackage{tensor} %Tensors
\usepackage{braket} %Quantenmechanik
\usepackage{siunitx} %Units
%\usepackage{esvect} %Vectors
%
%
%
\begin{document}
\def\RadA{1}\def\RadB{2}
\psset[pst-solides3d]{lightsrc=100 20 40,
lightintensity=2,Decran=17}
\begin{pspicture}(-2,-1.8)(2.1,3)
%\psgrid[gridcolor=gray,subgridcolor=lightgray]
%Enable Memory
\psset{solidmemory}
%Ellipsoid as streched sphere
\psSolid[object=sphere,r=1,fillcolor=gray,grid=false,
ngrid=50 50,transform={1 1 2 scaleOpoint3d},
name=MySolid]
%Plane of Tangent (reset of strech before required)
\psSolid[object=plan,definition=solidface,args=MySolid 614,
base=-1.25 1.25 -0.3 0.3,transform={1 1 1 scaleOpoint3d},
fillcolor=gray,
name=MyPlan]%,showBase
%Definition of 3D Point in Center of Ellipsoid
\psSolid[object=point,args=0 0 0,action=none,
name=MyPO]
%Definition of 3D Point in Center of Plane of Tangent
\psSolid[object=point,definition=solidcentreface,
args=MySolid 614,action=none,
name=MyPF]
%Vector Omega and Line to center of ellipsoid
\psSolid[object=vecteur,args=MyPF,
transform={MyPF translatepoint3d},name=MyTMP]
\psSolid[object=line,args=MyPO MyPF,
linestyle=dashed,linecolor=darkgray]

%LABEL ?????????????????????????????????????????
\psSolid[object=point,definition=translatepoint3d,
args=MyPF MyTMP,action=none,name=A,text={$\omega$}]

%LABEL ?????????????????????????????????????????
%Definition of 3D Point as Projection of Center of
%Ellipsoid to Plane of the Tangent
\psSolid[object=point,definition=orthoprojplane3d,
args=MyPO MyPlan,action=none,
name=MyPS]
%Vector of Angualer Momentum and Line to center of ellipsoid
\psSolid[object=vecteur,args=MyPS,
transform={MyPS translatepoint3d},
name=MyVecI]
\psSolid[object=line,args=MyPO MyPS,
linestyle=dashed,linecolor=darkgray]
%Construct of vector in Plane and Vector Product (Normal Vector)
\psSolid[object=vecteur,definition=vecteur3d,
args=MyPF MyPS,action=none,
name=MyVecII]
\psSolid[object=vecteur,definition=vectprod3d,
args=MyVecII MyVecI,action=none,
name=MyNVecI]
%Define Plane
\psSolid[object=plan,definition=normalpoint,
args={MyPS [MyVecII MyNVecI]},action=none,
%base=-0.25 0 0 0.25,fillcolor=gray,
name=MyPlanI]
%Test
\psProjection[object=point,plan=MyPlanI,
args=-0.2 0,action=none,
name=P1]
\psProjection[object=point,plan=MyPlanI,
args=0 0,action=none,
name=P2]
\psProjection[object=point,plan=MyPlanI,
args=0 0.2,action=none,
name=P3]
\psProjection[object=rightangle,
linecolor=lightgray,args=P1 P2 P3]
%Draw AllComponents
\composeSolid
%Core System
\DTLadd{\valA}{\RadA}{0.8}
\DTLadd{\valB}{\RadB}{1.0}
\axesIIID[axisnames={\xi,\eta,\zeta},
arrowinset=0,arrowscale=1.5
](\RadA,\RadA,\RadB)(\valA,\valA,\valB)
\end{pspicture}

\end{document}

voss
15-06-2009, 21:21
nachfolgend wird mit Hilfe von pst-solides3d ein Ellipsoid
und eine Tangentialfläche zum Ellipsoid gezeichnet (siehe Anhang).
Vorhanden sind zwei Vektoren:
-ein Vektor vom Zentrum des Ellipsoids durch den Berührungspunkt Ellipsoid
und Tangentialfläche (physikalisch: Winkelgeschwindigkeit)
-ein Vektor vom Zentrum des Ellipsoids, der senkrecht zur Tangentialfläche
steht (physikalisch: Drehimpuls)

Nun möchte ich die beiden Vektoren mit Labels ($\omega$, $L$) im Mathematikmodus bezeichnen, indem z.B. der Endpunkt des Vektors
über pst-solides3d ermittelt wird.

Folgende Fehlversuche:

1) Direkt als Attribut des berechneten Punktes:
\psSolid[object=point,definition=...,args=...,action=none,
name=A,text={$\omega$}] funktioniert nicht. Es wird nicht in den
Mathematikmodus umgeschaltet. es wird $\omega$ angezeigt

2) Irgendein Makro, welches die x,y,z Werte des in 1) definierten
Punktes name = A liefert? Dann könnte auf die pst-3dplot
Möglichkeiten zugegriffen werden:
\psPoint(x,y,z){MyPoint}
\nput{90}{MyPoint}{$\omega$}

3) Irgendein Makro, welches die x,y Werte des Punktes name = A liefert.
Würde ja schon ausreichen um mit pnode (anstelle psPoint) einen
Knoten zu definieren.

Eine Lösung nach Punkt 2) oder 3) wäre von besonderem Interesse,
da es dann möglich wäre mehr Elemente von pst-3dplot in pst-solides3d
zu verwenden, falls die (x,y,z) Koordinaten in pst-solides3d nicht
explizit (sondern nur berechnet) vorliegen.


pst-solides3d _und_ pst-3dplot zu verwenden ist unsinnig; die haben rein gar nichts
gemeinsam. $\omega$ geht nicht, weil der gesamte Ausdruck nach PostScript
weitergereicht wird. Man könnte nur den Symbolfont laden und dann text=o

Bezüglich der Koordinaten kannst du direkt PS-Code schreiben, was mit
\codejps{ ... } geht. Manual hier: http://melusine.eu.org/syracuse/bbgraf/
Abgesehen davon, kannst du doch das Ende des Vektors benutzen:


\psSolid[object=point,definition=translatepoint3d,args=MyPF MyTMP 0.2 add,action=none,name=A,text=o]
Durch 0.2 add wandert o höher.

Ansonsten scheinst du jedes paket zu laden, was dir iegendwie mal über den Weg
gelaufen ist ... sowas ist immer kontraproduktiv.

Herbert

rfischer
16-06-2009, 13:47
Besten Dank !