Anzeige:
Ergebnis 1 bis 3 von 3

Thema: PSTricks: pst-3dplot und pst-solides3d

  1. #1
    Registrierter Benutzer Avatar von rfischer
    Registriert seit
    12.06.2009
    Ort
    Heidelberg
    Beiträge
    20

    PSTricks: pst-3dplot und pst-solides3d

    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.

    Code:
    \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}

  2. #2
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von rfischer Beitrag anzeigen
    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:

    Code:
    \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

  3. #3
    Registrierter Benutzer Avatar von rfischer
    Registriert seit
    12.06.2009
    Ort
    Heidelberg
    Beiträge
    20
    Besten Dank !

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •