//Aluno: Lucas Moreira Vidigal Infante //RA: 073371 background{ color rgb < 1.00, 1.00, 1.00 > } #macro medio(ponto1, ponto2) (ponto1 + ponto2)/2 #end #declare ponto = sphere{ < 0.00, 0.00, 0.00 >, 0.3 pigment{ color rgb < 0.00, 0.00, 1.00 > } } #macro interpola(f0,v0,f1,v1,f) #local ss=(f-f0)/(f1-f0); #local rr=1-ss; (rr*v0 + ss*v1) #end #macro interpola4(t0,v0,v1,v2,v3,t3,tt) #local v01 = interpola(t0,v0,t3,v1,tt); #local v12 = interpola(t0,v1,t3,v2,tt); #local v23 = interpola(t0,v2,t3,v3,tt); #local v012 = interpola(t0,v01,t3,v12,tt); #local v123 = interpola(t0,v12,t3,v23,tt); #local v0123 = interpola(t0,v012,t3,v123,tt); v0123 #end #macro grafico(x0,y0,y1,y2,y3,x3,numero) #local num = (x3-x0)/numero; #local i = 0; union{ #while(i < numero) #local xx = x0 + (i * num); #local yy = interpola4(x0,y0,y1,y2,y3,x3,xx); object{ ponto translate <0,xx,yy>} #local i = i + 1; #end } #end #include "eixos.inc" union{ object {eixos(3)} object{ grafico(0,3,5,-4,medio(-4,-2),5,20)} object{ grafico(5,medio(-4,-2),-2,6,medio(6,-3),7,20)} object{ grafico(7,medio(6,-3),-3,7,medio(7,-1),10,20)} object{ grafico(10,medio(7,-1),-1,8,11,15,20)} } #include "camlight.inc" #declare centro_cena = < 0.00, 5.00 , 0.00 >; #declare raio_cena = 25; #declare dir_camera = <5,2,2>; #declare dist_camera = 30; #declare intens_luz = 0.80; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)