File:Double six.svg

Original file(SVG file, nominally 635 × 612 pixels, file size: 14 KB)

Summary

Description
English: Schläfli's double six configuration — twelve lines with five intersection points per line and two lines per intersection point, intersecting in the pattern of a crown graph — inscribed on a cube, following an illustration by Hilbert and Cohn-Vossen in Geometry and the Imagination.
Date
Source Own work
Author David Eppstein
Other versions
 Double six - new.svg

Source code

The basic geometry of this image was created with the following Python script (much of which was copied from the one used for File:Gray configuration.svg). The transparency effects were added afterwards, using Adobe Illustrator.

from pyx import canvas,path,color from math import sqrt,tan,asin   pov = (-22.7,7.1,9.3) x,y,z = 2,1,0 radius = 0.12 scale = 10.0 g = 2.0 h = 2.5  vertexColor = [color.rgb.red] edgeColor = [color.rgb.black] cubeColor = [color.rgb.blue]   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)  def cube(p,q):     lx1,ly1 = perspective(p)     lx2,ly2 = perspective(q)     c.stroke(path.line(lx1,ly1,lx2,ly2),cubeColor)  c = canvas.canvas()  def transform(point,spin,flip,mirror,turn):     x,y,z = point     if mirror:         x,y,z = y,x,z     if turn:         x,y,z = -x,-y,z     if flip:         x,y,z = -y,x,-z     for i in range(spin):         x,y,z = y,z,x     return x,y,z  points = set() lines = set() for s in (0,1,2):     for f in (0,1):         points.add(transform((0,0,g),s,f,0,0))         for m in (0,1):             for t in (0,1):                 points.add(transform((g,g/h,g),s,f,m,t))                 points.add(transform((g*h,g,g),s,f,m,t))             lines.add((transform((g*h,g,g),s,f,m,0),                        transform((-g*h,-g,g),s,f,m,0)))  for a in (-2,2):     for b in (-2,2):         cube((a,b,-2),(a,b,2))         cube((a,-2,b),(a,2,b))         cube((-2,a,b),(2,a,b))  for p,q in lines:    edge(p,q)   for p in points:     vertex(p)   c.writePDFfile("Double_six") 

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.

Captions

Add a one-line explanation of what this file represents

Items portrayed in this file

depicts

31 July 2010

File history

Click on a date/time to view the file as it appeared at that time.

Date/TimeThumbnailDimensionsUserComment
current03:59, 3 January 2017Thumbnail for version as of 03:59, 3 January 2017635 × 612 (14 KB)Hedwig in WashingtonReverted to version as of 23:29, 31 July 2010 (UTC)
23:29, 31 July 2010Thumbnail for version as of 23:29, 31 July 2010635 × 612 (14 KB)David Eppstein{{Information |Description={{en|1=Schläfli's double six configuration — twelve lines with five intersection points per line and two lines per intersection point, intersecting in the pattern of a crown graph — inscribed on a cube,
The following pages on the English Wikipedia use this file (pages on other projects are not listed):

Global file usage

Metadata