Beschreibungen und Beispiele zum Raytracer POV-Ray von Friedrich A. Lohmüller
            Geometrische Körper in POV-Ray
English English English
Italiano Italiano
Français français

Home
- POV-Ray Tutorial
 
 Geometrische Körper
   Inhaltsübersicht
Grundformen
  - sphere
  - cylinder
  - cone
  - torus
  - box
  - prism
  - plane
  > sor
  - lathe
  - superellipsoid
  - ovus

Körper mit Makros + CSG
Körper in "shapes3.inc"
Andere Körper als Makros
3D-Text-Objekte
Andere Formen
Non CSG Körper
height_field + HF macros
Isosurfaces
                                       
Sample sor

"sor" - Rotationskörper

"sor"
= surface of revolution
= Rotationskörper

allgemeiner Syntax:
sor{ n,
      < x1, y1 >,
      < x2, y2 >,
      < x3, y3 >,
               ...
      < xn, yn >
      texture{ ... }
      }

Hierbei wird durch "n" Punkte < xi, yi > (i=1 ... n) eine Umrißlinie des Körpers in der xy-Ebene definiert. Diese Punkte werden durch eine Spline-Kurve verbunden. Der Körper entsteht durch Rotation dieser Kurve um die y-Achse.
Im Normalfall wird diese Kurve senkrecht zur y-Achse geschlossen, will man einen offenen Körper erhalten, so muß der Zusatzbefehl "open" zugefügt werden.
Eventuelle Rechenfehler, die sich durch Löcher in der Körperoberfläche zeigen, lassen sich durch den Zusatz "sturm" reduzieren (dies erzwingt die Verwendung des langsameren, aber genaueren Sturmschen Algorithmus zur Wurzelberechnung).

Will man eine andere Lage des Rotationskörpers erreichen, so muß den Rotationskörper mittels "rotate<  ,   ,   >" und "translate< , , >" in die gewünschte Position gedreht und geschoben werden.
Sample 1 sor 600x450
Beispiel links:
// Rotationskörper
// am Nullpunkt (closed, aufgeschnitten):
sor{ 8, //n=8 Punkte!
     < 0.00, 0.00>,
     < 0.60, 0.00>,
     < 0.72, 0.44>,
     < 0.31, 0.93>,
     < 0.49, 1.26>,
     < 0.48, 1.35>,
     < 0.43, 1.56>,
     < 0.16, 1.60>
     texture{
       pigment{color White}
       finish { phong 0.5}
    }
  } // end of sor


//-----------------------
Beispiel rechts:
// Rotationskörper
// rechts: (open)
sor{ 8, //n=8 Punkte!
     < 0.00, 0.00>,
     < 0.60, 0.00>,
     < 0.72, 0.44>,
     < 0.31, 0.93>,
     < 0.49, 1.26>,
     < 0.48, 1.35>,
     < 0.43, 1.56>,
     < 0.16, 1.60>
     open // <--------------!!!
     translate<2,0,0>
     texture{
       pigment{color White}
       finish {phong 0.5}
     }
   } // end of sor
//-----------------------
Anmerkung: Warum "sor" statt "lathe" ?(letzeres erscheint meist sehr viel flexibler!)
Schnittberechnungen mit "sor"-Objekten führen lediglich auf quadratische Gleichungen, wogegen Schnitttests mit "lathe"-Objekten auf Gleichungen 6.Grades führen. Quadratische Gleichungen sind sowohl schneller als auch genauer lösbar. Da solche Objekte stets sehr viele Teilflächen besitzen, ist dies von großer Bedeutung.


© Friedrich A. Lohmüller, 2013
http://www.f-lohmueller.de
  top