File:Gray configuration.svg
Summary
Description | The Gray configuration, 27 points and 27 lines meeting three lines to a point and three points to a line, drawn as a perspective view of a three-dimensional 3x3x3 grid. |
Date | |
Source | Own work |
Author | David Eppstein |
Source code
This image was created as a pdf file by the following Python code, then rescaled and converted to SVG.
from pyx import canvas,path,color
from math import sqrt,tan,asin
pov = (-20,6,5)
x,y,z = 2,1,0
radius = 0.05
scale = 10.0
vertexColor = [color.rgb.red]
edgeColor = [color.rgb.black]
def distance(p,q):
return sqrt(sum([(p[i]-q[i])**2 for i in (x,y,z)]))
def perspective(loc):
dz = loc[z]-pov[z]
return (loc[x]-pov[x])*scale/dz, (loc[y]-pov[y])*scale/dz
def vertex(p):
lx,ly = perspective(p)
prad = scale*1.1*tan(asin(radius/(distance(p,pov))))
c.fill(path.circle(lx,ly,prad),vertexColor)
def edge(p,q):
lx1,ly1 = perspective(p)
lx2,ly2 = perspective(q)
c.stroke(path.line(lx1,ly1,lx2,ly2),edgeColor)
c = canvas.canvas()
for i in range(3):
for j in range(3):
edge((i,j,0),(i,j,2))
edge((i,0,j),(i,2,j))
edge((0,i,j),(2,i,j))
for i in range(3):
for j in range(3):
for k in range(3):
vertex((i,j,k))
c.writePDFfile("Gray configuration")
Licensing
![]() |
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. |