Descrizioni ed esempi per il raytracer POV-Ray di Friedrich A. Lohmüller
Esempi POV-Ray - Come fare oggetti per POV-Ray
English English English
Français français
Deutsch Deutsch

Home
- POV-Ray Tutorial

  - Esempi per POV-Ray
   Indice generale
  - Geometria
    - Pedone
    - Cubo wireframe
    - Ottagono
    - Forma ovoidale
    - Stella
    - Lente ottica
    - Scacchiera
    - Forma Pallone
    - Forma Erlenmeyer
    - Due Cilindri Fondati
    - Tetraedro Regolare
    - Triangolo di Penrose
    - Yin & Yang
    - Partizione Pisciforme
    - Rosetta Trilobato
    - Partizione Trilobata
  - Architettura
  - Tecnica
                                               

 
Two-Cylinder-Blob

Due Cilindri Fondati

La costruzione di una forma di due cilindri que fonderono insieme -
una combinazione de due cilindri con una scanalatura tra le due.

Oggetti:   "box", "cylinder".
Metodi: "#declare","union", "intersection" "#macro".
Cliccare qui per un esempio!

La costruzione di una forma di due cilindri fondati.
Un taglio trasversale de la geometria di questa costruzione si può vedere nell'imagine a margine.
( Per più sui dettagli de la geometria di base q.v.:
  Tangent Circles.)

//---------------------------------------
#macro Two_Cylinder_Blob_0(
           Pitch, // distance of centers
           SD,    // slice thickness in z
           Cyl_R, // cylinder radius
           Fillet_R , // fillet radius
           Axis_R, // <Cyl_R, 0=non
        ) //-----------------------------
//---------------------------------------
#local D = 0.00001; // a little bit
// distance of fillet from centerline
// of right and left cylinder:
#local Fillet_Y  =
  sqrt( pow(Fillet_R+Cyl_R,2)
  - pow(Pitch/2,2));
// S = tangent point of the cylinders!
// proportional!
#local S_X =
 Fillet_R/(Cyl_R + Fillet_R)*Pitch;
#local S_Y =
Cyl_R/(Cyl_R + Fillet_R)*Fillet_Y;
//---------------------------------------
#if (Axis_R > 0)
difference{
#end //----------------------------------
union{
 cylinder{ <0,0,-SD/2>,<0,0,SD/2>,Cyl_R
           translate< Pitch/2,0,0>}
 cylinder{ <0,0,-SD/2>,<0,0,SD/2>,Cyl_R
           translate<-Pitch/2,0,0>}
 difference{ // 2
  box{<-S_X,-S_Y,-SD/2>,<S_X,S_Y,SD/2> }
  cylinder{ <0,0,-SD/2-D>,
            <0,0,SD/2+D>, Fillet_R
            translate<0, Fillet_Y,0>}
  cylinder{ <0,0,-SD/2-D>,
            <0,0,SD/2+D>, Fillet_R
            translate<0,-Fillet_Y,0>}
 } // end difference 2
} // end union -------------------------
#if (Axis_R > 0)
cylinder{<0,0,-SD-D>,<0,0,SD/2+D>,Axis_R
         translate< Pitch/2,0,0>}
cylinder{<0,0,-SD-D>,<0,0,SD/2+D>,Axis_R
         translate<-Pitch/2,0,0>}
} // end of difference or union
#end // of 'Axis_R > 0'
#end //--------------------- end of macro
//---------------------------------------

// example://----------------------------
object{ Two_Cylinder_Blob_0 (
          0.0127, // Pitch distance
          0.0009, // slice thickness
          0.0051, // cylinder radius
          0.0081, // fillet radius
          0.0022, // axis r,
           //< cylinder r, 0=non
         )//-----------------------------
        texture{
           pigment{ color rgb<1,1,1>}
           finish { phong 1.0}
        } // end of texture
        rotate<0,0,0>
        translate<0,0,0>
      } // end of sphere ----------------
//---------------------------------------
Two cylinders melting together
- Two-Cylinder-Blob.

Using Round_Cylinders and Torus_Segments
for the borders completes the construction to
object{Two_Cylinder_Blob_1( ...)}


Questa forma in una macro come un
oggetto pronto per l'uso: Two_Cylinder_Blob_1.inc


A che cosa serve questa geometria?
Qui qualche esempio:

Chain link for a bike chain
Una applicazione di questa macro come un
oggetto pronto per l'uso: Bike_Chain_Link.inc

 
top
© Friedrich A. Lohmüller, 2010
www.f-lohmueller.de