Parametrischer entwurf in POV-Ray

ingoogni

ww-kiefer
Registriert
13. November 2024
Beiträge
46
Ort
enschede
Die alte Dame des Ray-tracing macht immer noch mit. Hier fast taeglich. Ich benuetze es um schnell ein bild her zu stellen, beschaeftige mich dabei meistens nicht mit beleuchtung, textur und farbe, deshalb das haessliche bild. Normal programmiere ich in English, aber diesmal mar es zur illustration fuer Hollaendische kollegen.

Code:
//+w800 +h800 +am2 +a0.01

#version 3.7;
global_settings{ assumed_gamma 1.0 }
#default{ finish{ ambient 0.1}}


// globals
#declare basishoogte = 600;  //basishoehe
#declare basisbreedte = 600;  //basisbreite
#declare basisdiepte = 600;    //basistiefe

#macro openmodule(breedte, hoogte, diepte, dikte)
  #local werkhoogte = basishoogte * hoogte;
  #local werkbreedte = basisbreedte * breedte;
  #local werkdiepte = basisdiepte * diepte;
  object{
    difference {
      box{ <0,0,0>, <werkbreedte, werkhoogte, werkdiepte> }
      box{
        <0,0,0>, <werkbreedte - 2 * dikte, werkhoogte - 2 * dikte, werkdiepte>
        translate < dikte, dikte, - dikte>
      }
    }
  }
#end

// wat we gaan maken
//#declare modulehoogte = 1/2;
//#declare modulebreedte = 1;
//#declare modulediepte = 2/3;
//#declare wanddikte = 24; //mm

//wandkast
union{
object{
  openmodule(3/4, 3/4, 1/4, 22)
  translate <0,150,450>
  pigment{rgb 1}
}
object{
  openmodule(3/4, 1/2, 1/4, 22)
  translate <-450,150,450>
  pigment{rgb 1}
}
object{
  openmodule(3/4, 1/2, 1/4, 22)
  translate <450,150,450>
  pigment{rgb 1}
}
translate <0,1000,0>
}

//bureau
union{
object{
  openmodule(1, 1, 1, 40)
  translate<0,100,0>
  pigment{rgb 1}
}

box {<0,0,0>,<550,100,550>
  pigment{rgb 1}
  translate <25,0,25>
}
object{
  openmodule(1/2, 1, 1, 18)
  pigment{rgb 1}
  translate <1400,0,0>
}

box{<-10,700,-10> <1550,740,700> pigment{rgb 1}}
translate<-550,0,0>

}

//stoel
union{
  object{
    openmodule(1/4, 1, 1, 18)
    translate<0,0,0>
    pigment{rgb 1}
  }

  object{
    openmodule(1/4, 1, 1, 18)
    translate<600,0,0>
    pigment{rgb 1}
  }
  box{
    <0,0,0><450,18,450>
    translate <150,450,0>
    pigment{rgb 1}
  }
  box{
    <0,-300,0><450,450,18>
    rotate<30,0,0>
    translate<150,450,450>
    pigment{rgb 1}
  }
  rotate<0,100,0>
  translate<1500,0,-1000>
}

//kast
union{
  object{
    openmodule(1, 1, 3/4, 40)
    translate<0,0,0>
    pigment{rgb 1}
  }
  object{
    openmodule(1, 1, 3/4, 40)
    translate<600,0,0>
    pigment{rgb 1}
  }

  object{
    openmodule(1/2, 1, 3/4, 40)
    translate<0,600,0>
    pigment{rgb 1}
  }
  object{
    openmodule(1/2, 1, 3/4, 40)
    translate<900,600,0>
    pigment{rgb 1}
  }

  object{
    openmodule(1, 1/2, 1/4, 40)
    translate<300,600,300>
    pigment{rgb 1}
  }

  object{
    openmodule(1, 1/2, 1/4, 40)
    translate<300,900,300>
    pigment{rgb 1}
  }

  object{
    openmodule(1, 1/2, 3/4, 40)
    translate<0,1200,0>
    pigment{rgb 1}
  }

  object{
    openmodule(1, 1/2, 3/4, 40)
    translate<600,1200,0>
    pigment{rgb 1}
  }

  rotate<0,90,0>
  translate<2600,0,800>

}



light_source{<-3000,5000,-3000> rgb 1}

camera {
  angle 50
  location  <-2500 , 1500 , -3550>
  right     x*image_width/image_height
  look_at   <1200 , 800 , 0.0>
}

kast_parametric.png
 
Oben Unten