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
SVG development
InfoField

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

Public domain This work has been released into the public domain by its author, David Eppstein. This applies worldwide.
In some countries this may not be legally possible; if so:
David Eppstein grants anyone the right to use this work for any purpose, without any conditions, unless such conditions are required by law.
Category:Self-published work#Gray%20configuration.svgCategory:PD-self#Gray%20configuration.svg Category:Files by User:David Eppstein from en.wikipedia Category:Gray graph Category:Images with Python source code Category:Octant (geometry) Category:Projective geometry
Category:Files by User:David Eppstein from en.wikipedia Category:Gray graph Category:Images with Python source code Category:Octant (geometry) Category:PD-self Category:Projective geometry Category:Self-published work Category:Valid SVG created with Python:Trigonometry