File:Villarceau circles.gif

Summary

Description
English: Villarceau circles in a Torus. Rendered using POV-Ray.
 This image was created with POV-Ray.
Category:Created with Persistence of Vision#Villarceau%20circles.gif
Source Own work
Author Lucas Vieira

Wikipedia

 Category:Featured pictures on Wikipedia, English#Villarceau%20circles.gifThis is a featured picture on the English language Wikipedia (Featured pictures) and is considered one of the finest images. See its nomination here.

If you think this file should be featured on Wikimedia Commons as well, feel free to nominate it.
If you have an image of similar quality that can be published under a suitable copyright license, be sure to upload it, tag it, and nominate it.

Category:Files with Assessments template missing SDC Commons no value quality assessment

Licensing

Public domain I, the copyright holder of this work, release this work into the public domain. This applies worldwide.
In some countries this may not be legally possible; if so:
I grant anyone the right to use this work for any purpose, without any conditions, unless such conditions are required by law.
Category:Self-published work#Villarceau%20circles.gifCategory:PD-self#Villarceau%20circles.gif

POV-Ray source code

Villarceau_circles.pov
/* 
Villarceau circles 2.0, by Lucas Vieira - October 2, 2006 - Coded in: POV-Ray 3.6
License: Public Domain


Info
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Author user page: http://en.wikipedia.org/wiki/User:LucasVB
The final animation at Wikimedia Commons: http://commons.wikimedia.org/wiki/Image:Villarceau_circles.gif


Notes
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Several modifications were done for each part of the animation and I didn't keep them all here.
So if you wish to reproduce the animation, you'll have to play with this code quite a bit. :)


*/

background { color rgb 1 }

global_settings {
	assumed_gamma 1.5
}

camera {
	orthographic
	location <0,4,-5>*0.75
	look_at <0,0,0>
	rotate 5*y // slight camera angle so the cutting plane doesn't look too boring
	//rotate 90*y // debug rotation
}

light_source {
	<0,0,0>, 1
	translate <-5,5,0>*1
	shadowless // makes everything softer, because shading comes entirely from the surface normal
	           // this removes specular reflections, but I thought it looked a lot better
}


//Several rotation codes used for various parts of the animation.

//#declare rotation = (-95*sin(clock*pi/2))*y; // 360*clock*y;
#declare rotation = -90*y;
//#declare rotation = (-85 * sin(clock*pi/2))*y;


//Bottom half-torus
#if (1)
difference {
	difference {
		torus {
			1, 0.5
		}
		torus {
			1, 0.499
			pigment {
				image_map {
					//surface inside the torus
					png "checker2.png" // 1024x512 checkered image, with 64x64 cells.
					interpolate 4
					map_type 5
					//transmit all 1-sin(clock*pi/2)
					//transmit all 0.85
				}
			}
		}
	}
	box {
   -3*<1,0,1>, <1,1,1>*3
		rotate degrees(asin(0.5-0.001))*z
	}
	pigment {
		image_map {
			png "checker.png" // 1024x512 checkered image, with 64x64 cells.
			interpolate 4
			map_type 5
			//transmit all 1-sin(clock*pi/2)
			//transmit all 0.85
		}
	}
	finish {
		specular 0.5
		roughness 0.01
		ambient 0.5
	}
	rotate rotation
}
#end


//Top half-torus (the one discarded during the animation)
//Notice it doesn't have an inner surface like the other half

#if (0)
intersection {
	difference {
		torus {
			1, 0.5
		}
		torus {
			1, 0.499
		}
	}
	box {
   -3*<1,0,1>, <1,1,1>*3
		rotate degrees(asin(0.5-0.001))*z
	}
	pigment {
		image_map {
			png "checker.png" // 1024x512 checkered image, with 64x64 cells.
			interpolate 4
			map_type 5
			//transmit all 1-sin(clock*pi/2) // Fades it away while moving to the left (see below)
			//transmit all 0.85
		}
	}
	finish {
		specular 0.5
		roughness 0.01
		ambient 0.5
	}
	//translate -x*0.5*sin(clock*pi/2) // Moves this part to the left. Should be enabled along with the fade code above
	rotate rotation
}
#end

//Cutting plane
#if (0)
box {
	<1.8,0.001,1.8>, -<1.8,0.001,1.8>
	pigment {
		color rgb <1,0.8,0.5>
		//transmit 1-sin(clock*pi/2)*0.4
		//transmit 0.6+0.4*sin(clock*pi/2)
		transmit 0.6
	}
	finish {
		specular 0.5
		roughness 0.01
		ambient 0.3
	}
	//translate 3.5*x - sin(clock*pi/2)*3.5*x
	rotate degrees(asin(0.5-0.001))*z
}
#end

//The Villarceau circles
#if (0)
union {
	torus {
		1, 0.01
		translate 0.5*z
	}
	torus {
		1, 0.01
		translate -0.5*z
	}
	pigment {
		color rgb <1,0,0>
		//transmit clock
	}
	finish {
		ambient 1
	}
	no_shadow
	rotate degrees(asin(0.5-0.001))*z
	rotate -85*y
}
#end

/* END OF FILE */
Category:Images with Povray source codeCategory:Animations with Povray source code Category:Animations of geometry Category:Animations of intersection (geometry) Category:Villarceau circles Category:Created with Persistence of Vision Category:Torus (blue checkered) Category:Animated GIF files Category:3D shading Category:Images with Povray source code Category:Posted to Wikimedia Foundation Pinterest
Category:3D shading Category:Animated GIF files Category:Animations of geometry Category:Animations of intersection (geometry) Category:Animations with Povray source code Category:Created with Persistence of Vision Category:Featured pictures on Wikipedia, English Category:Files with Assessments template missing SDC Commons no value quality assessment Category:Images with Povray source code Category:PD-self Category:Posted to Wikimedia Foundation Pinterest Category:Self-published work Category:Torus (blue checkered) Category:Villarceau circles