- POV-Ray Tutorials
- Analytische Geometrie
mit POV-Ray
- Inhaltsübersicht -
- Insert Menu Zusatz
& Download
- Grundsätzliches
zur Arbeitsweise
Punkte & Linien
- Punkte in 3D
- Strecken, Geraden,
Vektoren, Abstandspfeile
- Flächen u. Ebenen
- Ausgabe Resultate,
Beschriftung
> Schnittpunkte
- Kreise
Körper
- Tetraeder
- Parallelflach (Spat)
- Runde Körper
-
- Tabellarischer
Überblick über
"analytical_g.inc"
- Vektorrechnung
mit POV-Ray
- Rechts- u. linkshändige
Koordinatensysteme
und das Vektorprodukt
- Beispiele aus der
- Analytischen Geometrie
- Seitenmitten-Parallelogramm
- Spurpunkte einer Geraden
- Berechnungen am Dreieck
- Parallelogrammfläche
und Vektorprodukt
- Schatten einer Pyramide
- Schnitt mit Ebene || zu yz
- Winkel zw. Dreieck yz-Ebene
|
Analytische Geometrie mit POV-Ray |
Schnittpunktsberechnungen und Ausgabe der Schnittpunktskoordinaten |
|
|
Mit der "trace"-Funktion von POV-Ray kann man die Koordinaten
des Schnittpunktes einer Geraden mit jedem anderen Objekt berechnen.
Hierzu sollte man dieses Objekt mit "#declare" definieren.
Man erhält den Schnittpunkt mit
trace ( Objekt, Startpunkt, Trace-Richtung );
Beispiel:
Schnittpunkt einer Geraden AB mit einer Ebene
Die Ebene wird hier durch ihren Normalenvektor und einen Startpunkt definiert.
// Punkte A und B der Geraden:
#declare A = < 3.0, 1.0,-3.0>;
#declare B = <-1.0, 3.0, 5.0>;
// Ebene
// Normalenvektor:
#declare N = < 1, 0, -1>;
// Startpunkt:
#declare P = < 0.0, 0.0, 0.0>;
#declare Plane_1 =
object{
Plane_NoP( N, P, <-3,0,-4>,<2.5,4,4> )
pigment{ color rgbt< 0.75,0.65,0.5,0.4> }
}// end of Plane_1
// Zeichnen der Ebene Plane_1:
object{ Plane_1}
// point of intersection - Schnittpunkt
#declare Hit_the_Object = trace ( Plane_1, A, B-A );
// Darstellung des Schnittpunkts:
sphere{ Hit_the_Object, Rp texture{ T_Red } }
// Darstellung seiner relativen Lage:
object{ Show_Yxz( Hit_the_Object, Rl/2)
pigment{ color Yellow }
}
Zur Ausgabe seiner Koordinaten benutzt man das "text"-Objekt von POV-Ray:
text{ ttf "ARIAL.TTF"
concat( "S = (",
vstr(3, Hit_the_Object, "/", 0, 1),
")"
),0.1,0
scale 0.40 rotate<20,-45,0>
translate Hit_the_Object+< 0.4,0.0,0>
pigment{ color Red } no_shadow }
Normalenvektor am Schnittpunkt:
(Wird benötigt zur Berechnung des Schnittwinkels!)
Um die Koordinaten des Normalenvektors am Schnittpunkt zu erhalten
muß man eine Variable definieren in der die seine Werte gespeichert werden sollen:
#declare Hit_Normal = <0,0,0>;
Anmerkung: Wenn die "trace"-Funktion von POV-Ray
keinen Schnittpunkt findet dann bleibt der Normalenvektor (hier: Hit_Normal)
der Null-Vektor <0,0,0>
Das Prüfen dieses Normalenvektors ist die einzig verläßliche Methode um
zu Prüfen ob ein Schnitt stattgefunden hat oder nicht!
Hier benutzt man die erweiterte Version der "trace"-Funktion:
trace( Objekt, Startpunkt, Richtung, Normale);
Beispiel: Normalenvektor an einem Schnittpunkt
#declare Hit_the_Object =
trace ( Plane_1, A, B-A, Hit_Normal );
// The point of intersection - Schnittpunkt
sphere{ Hit_the_Object, Rp pigment{ color Red } }
// The normal vector at the point of intersection
// Normalenvector am Schnittpunkt
object{ Vector( Hit_the_Object,
Hit_the_Object + Hit_Normal, Rl)
pigment{ color rgb<1,0,0.25>}
}
|
Schnittpunkt von Gerade und Ebene.
Klicken Sie hier für die vollständige Beschreibung dieser Szene für POV-Ray:
".txt"-Datei oder
".pov"-Datei
Schnittpunkt von Gerade und Ebene.
Klicken Sie hier für die vollständige Beschreibung dieser Szene für POV-Ray:
".txt"-Datei oder
".pov"-Datei
Schnittpunkt von Gerade und Ebene.
Klicken Sie hier für die vollständige Beschreibung dieser Szene für POV-Ray:
".txt"-Datei oder
".pov"-Datei
|
Schnittpunkte einer Geraden AB mit einer Kugel
Vereinfacht setzen wir hier voraus, daß die Gerade die Kugel sicher schneidet.
Wir definieren das Kugel-Objekt und zwei Normalen in den Schnittpunkten:
// Kugel:
#declare M = < -1, 2.0, 0.0>;
#declare Radius = 1.5 ;
// Kugel
#declare Sphere_1 =
sphere{ o, Radius
translate M
pigment{ color Green transmit 0.5}
}
// Zeichnen der Kugel
object{ Sphere_1}
// Vorbereiten der Normalenvektoren
#declare Hit_Normal = <0,0,0>;
#declare Hit_Normal2 = <0,0,0>;
Dann "tracen" wir die Gerade von zwei Richtungen gegen die Kugel
um beide Schnittpunkte und beide Schnittnormalen mit der Kugel zu erhalten:
#declare Hit_the_Object =
trace ( Sphere_1, A, B-A, Hit_Normal );
#declare Hit_the_Object2 =
trace ( Sphere_1, B, A-B, Hit_Normal2);
|
Schnittpunkte von Gerade und Kugel.
Klicken Sie hier für die vollständige Beschreibung dieser Szene für POV-Ray:
".txt"-Datei oder
".pov"-Datei
|
|