POV Ray 3.7 code //========================================================== // Heart 3D random generation steps // (POV-Ray 3.7 rendering) //========================================================== #include "shapes.inc" #include "glass.inc" #include "colors.inc" #include "metals.inc" global_settings {assumed_gamma 1.0} background { color rgb <00,0.0,0.0> } camera { location <-20, 20, -250> look_at < 0, 0, 0> } light_source { < 20, 40, -120> rgb <1.000000, 1.000000, 1.000000> * 4.0 } #declare R = 60; #declare n = 300; #declare st = 1; #declare S = 1; // scale factor #declare Theta = -110; #declare Phi = 0; #declare Psi = -2; #declare X = array[n+1][n+1]; #declare Y = array[n+1][n+1]; #declare Z = array[n+1][n+1]; #for (p, 0, n,st) #declare th = p*2*pi/n; #for (q, 0, n,st) #declare ph = q*pi/n; #declare XX = S*R*cos(th)*sin(ph); #declare YY = S*R*sin(th)*sin(ph); #declare ZZ = R*cos(ph); #declare X[p][q] = XX + 0.0008*YY*YY; #declare Y[p][q] = 0.7*YY; #declare Z[p][q] = 2*ZZ*exp(-.3*(pi-ph)); #end // end for q #end // end for p #declare Rnd_1 = seed (1153); #declare Rnd_2 = seed (553) ; // replace n by n*clock for animation union{ #for(j,0,200*n) // steps n, 5*n, 10*n, 20*n, 50*n, 200*n #declare p = int(n*rand(Rnd_1)); #declare q = int(n*rand(Rnd_2)); sphere { < X[p][q], Y[p][q], Z[p][q] >,1 texture { pigment { color < 1.0, 0.5, 0.4 > } } finish { ambient rgb <0.3,0.1,0.1> diffuse .3 reflection 0.0 specular 0.0 } // plot sphere } translate < 0, 30, 20 > rotate < Theta, Phi, Psi > } #end} // end for j