// Persistence of Vision Ray Tracer Scene Description File // File: adn.pov // Vers: 3.5 // Desc: ejemplo lenguaje escenico pov // Date: 18/08/2004 // Auth: B. Gimeno // e-mail : aplenosol[at]ya.com #version 3.5; #include "colors.inc" #include "transforms.inc" global_settings { assumed_gamma 1.0 } // ---------------------------------------- camera { location <0, 7.5, -40.0> right x*image_width/image_height look_at <0.0, 0.0, 0.0> } light_source { <0, 0, 0> // light's position (translated below) color rgb <1, 1, 1> // light's color translate <-30, 30, -30> } background {colour rgb <.3,.4,.9>} // ---------------------------------------- #macro ADN (Contador_H,Radio_H,Semilla) union { #local Adenina = object {box {-Radio_H/15,Radio_H/15} pigment {Red} } #local Guanina = object {sphere {0,Radio_H/15} pigment {Blue}} #local Tinina = object {cylinder {<0,0,-Radio_H/15>,<0,0,Radio_H/15>,Radio_H/15} pigment {Yellow}} #local Citosina = object {cylinder {<0,-Radio_H/15,0>,<0,Radio_H/15,0>,Radio_H/15} pigment {Green}} #local Contador_H_r = Contador_H ; #while (Contador_H_r>0) #local Altura = Contador_H_r*.5 ; #local Rs1 = seed (Contador_H_r*Semilla); object { #switch (rand(Rs1)) #range (0,0.25) Adenina #break #range (0.2500000001,0.50) Guanina #break #range (0.5000000001,0.75) Citosina #break #range (0.7500000001,1.00) Tinina #break #end translate z*Radio_H rotate y*Contador_H_r*10 translate y*Altura } #local Contador_H_r = Contador_H_r-1 ; #end #local Contador_H_r = Contador_H ; #while (Contador_H_r>0) #local Altura = Contador_H_r*.5 ; #local Rs1 = seed (Contador_H_r+Semilla); object { #switch (rand(Rs1)) #range (0,0.25) Adenina #break #range (0.2500000001,0.50) Guanina #break #range (0.5000000001,0.75) Citosina #break #range (0.7500000001,1.00) Tinina #break #end rotate translate -z*Radio_H rotate y*Contador_H_r*10 translate y*Altura } #local Contador_H_r = Contador_H_r-1 ; #end } #end // ******** uso : object { ADN (50, // para controlar la longitud de la espiral 7, // el radio de la helice 20, // semilla aleatoria ) Center_Trans (ADN(50,7,20),x+y+z) }