Steiner surfaceAlso known as the Roman Surface
Written by Paul Bourke The Steiner surface is attributed to Jacob Steiner, created while he was visiting Rome in 1844. Points on the so called Steiner surface satisfy the following equation in 3 space
This surface is relatively interesting but hard to visualise without 3D views. The method used here will place markers (spheres) at points on the surface, these can then be rendered with most rendering software. Solving for x Rearranging, the equation of the Steiner surface can be written as a quadratic in x, namely
solving this quadratic in x gives
![]() solutions exist as long as
![]() The first condition is only satisfied if x and y are 0. The second condition means that solutions only exist for points within a circle in the yz plane.centered at the origin and radius 0.5.
![]() From symmetry, similar equations can be derived for y and z. Solving for y
![]() solutions exist as long as
![]() Solutions only exist for points within a circle in the xz plane.centered at the origin and radius 0.5. Solving for z
![]() solutions exist as long as
![]() Solutions only exist for points within a circle in the xy plane.centered at the origin and radius 0.5. Notes * From the original equation it can be seen that the surface passes through the point (0,0,0). * The surface lies within a sphere at the origin of radius 0.5 * At the points where the circle in each plane crosses the axes, the Steiner surface is 0 in the axis perpendicular to the surface. * The equation of the surface around the circle on one of the planes is of the form (for the xy plane)
![]() If the circle is flattened out this curve looks like a skewed sine function. Visualisation To visualise this surface one might sample it on a mesh in each of the planes: xy, yz, zx. The pseudo code for the xy plane samples might be as follows. The smaller the grid size, delta, the finer the sampling of the surface.
for x=-0.5 to 0.5 step delta for y=-0.5 to 0.5 step delta if x*x + y*y is not 0 then if 1 - 4 (x*x + y*y) is greater than or equal to 0 evaluate the two values of z draw something at the two positions end if end if end for end for The equivalent sampling can be performed for the other two planes. The markers placed in space should be checked against the ones already found to avoid placing two markers in the same position. In the diagrams below small spheres were placed at each position on the surface, any sphere that intersected another by more than a certain amount was ignored. Images of the Steiner surface rendered using the Radiance software are shown below.
![]() View of the surface with the camera at (1,0.5,0) pointing towards the origin.
![]() View of the surface and border with the camera at (1,1,1) pointing towards the origin Parametrisation The parametric form of the Steiner surface is as follows:
y = sin(u) sin(2v) / 2 z = cos(u) sin(2v) / 2 where 0 <= u <= pi, 0 <= v <= pi
![]()
![]()
![]()
![]()
![]()
Steiner Look-A-LikeDesigned by Roger BagulaGraphics and C code by Paul Bourke September 2000
Source Code |