4.4.19 Script sundial

Utilisation : Les liens ne sont pas apparents. Pour obtenir des informations sur un mot clé, cliquez-le dans le script !

// Persistence Of Vision Ray Tracer Scene Description File
// File: sundial.pov
// Desc: Horizontal and vertical sundail
// This sundial model is NOT suitable for the southern hemisphere,
// or for use near the poles and equator.
// Date: 15-09-1998
// Auth: Ingo Janssen
//
// Make an animation of 52 frames. The shadow will describe the figure 8.
// This is the analemma:
// http://www.uwm.edu/People/kahl/Images/Weather/Other/analemma.html
//
// The motto for this sundial:
// "By a shadow I explain the heavens"

#include "sunpos.inc"

global_settings {assumed_gamma 1}

camera {
	location <3.0, 5.0,-5.0>
	look_at <0.40, 1.8, 0.0>
	angle 40
}

#declare Year = 1998;
#declare Month = 1;
#declare Day = 1+int(clock*365);
#declare Hour = 12;
#declare Minute = 35;
#declare Lstm = 15;
#declare LONG = 6.9;
#declare LAT = 52.266;

//Put in the sun
light_source {
	SunPos(Year, Month, Day, Hour, Minute, Lstm, LAT, LONG)
	rgb 1
}

background {rgb 0}

// Build the horizontal hourlines of the dail.
#declare DailH = cylinder {<0, 0, 0>, <0, 0, 2>, 0.01}
#declare HCount = -30;

#while (HCount < 90)
	#declare RotH = degrees(atan2(tan(radians(HCount))/sin(radians(LAT)), 1));
	#declare HourlinesH = union {
		cylinder {
			<-2, 0, 0>, <0, 0, 0>, 0.01
			rotate <0, RotH, 0>
		}
		cylinder {
			<-2, 0, 0>, <0, 0, 0>, 0.01
			rotate <0, 180-RotH, 0>
		}
	}
	#declare DailH = union {
		object {HourlinesH}
		object {DailH}
	}
	#declare HCount = HCount+15;
#end	// while

#declare HGnomon = cylinder {
	<0, 0, 0>, <0, 0.53, 0>, 0.02
	rotate <90-LAT, 0, 0>
	pigment {rgb <1, 0, 0>}
}

// Build the vertical hourlines.
#declare DailV = cylinder {<0, 0, 0>, <0,-2, 0>, 0.01}
#declare VCount = -30;

#while (VCount < 90)
	#declare RotV = degrees(atan2(tan(radians(VCount))/cos(radians(LAT)), 1));
	#declare HourlinesV = union {
		cylinder {
			<-2, 0, 0>, <0, 0, 0>, 0.01
			rotate <0, 0, RotV>
		}
		cylinder {
			<-2, 0, 0>, <0, 0, 0>, 0.01
			rotate <0, 0, 180-RotV>
		}
	}
	#declare DailV = union {
		object {HourlinesV}
		object {DailV}
	}
	#declare VCount = VCount+15;
#end	// while

#declare VGnomon = cylinder {
	<0,-1.05, 0>, <0, 0, 0>, 0.02
	rotate <90-LAT, 0, 0>
	pigment {rgb <1, 0, 0>}
}

// Put it all pieces together.
#declare Sundail = union {
	difference {
		box {<-1, 0, 0>, <1, 2.5, 2.5>}
		object {
			DailH
			translate <0, 2.5, 0.3>
			pigment {rgb <0, 0, 1>}
		}
		object {
			DailV
			translate <0, 2.2, 0>
			pigment {rgb <0, 0, 1>}
		}
	}
	object {
		HGnomon
		translate <0, 2.5, 0.3>
	}
	object {
		VGnomon
		translate <0, 2.2, 0>
	}
}

object {
	Sundail
	pigment {rgb 1}
}

Et avec le script d'animation "sundial.inc",

; Persistence Of Vision raytracer version 3.5 sample file.
Antialias = Off

Antialias_Threshold = 0.2
Antialias_Depth = 3
Input_File_Name = sundial.pov

Initial_Frame = 1
Final_Frame = 52
Initial_Clock = 0
Final_Clock = 1

Pause_when_Done = off

Cyclic_Animation = off	;;insures it reaches 1.0

Voici ce que nous obtenons :

Retour Retour