Файл:Double six.svg

Материал из testwiki
Перейти к навигации Перейти к поиску
Исходный файл (SVG-файл, номинально 635 × 612 пкс, размер файла: 14 КБ)

Этот файл находится на Викискладе и может использоваться другими проектами. Информация с его страницы описания приведена ниже.

Краткое описание

Описание
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.
Дата
Источник Собственная работа
Автор David Eppstein
Другие версии
SVG‑разработка
InfoField
 Исходный код этого SVG-файла корректен.
 Это trigonometry было создано с помощью Python
 и с помощью Adobe.

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 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")

Лицензирование

Public domain Я, владелец авторских прав на это произведение, передаю его в общественное достояние. Это разрешение действует по всему миру.
В некоторых странах это не может быть возможно юридически, в таком случае:
Я даю право кому угодно использовать данное произведение в любых целях без каких-либо условий, за исключением таких условий, которые требуются по закону.

Краткие подписи

Добавьте однострочное описание того, что собой представляет этот файл

Элементы, изображённые на этом файле

изображённый объект

История файла

Нажмите на дату/время, чтобы увидеть версию файла от того времени.

Дата/времяМиниатюраРазмерыУчастникПримечание
текущий04:59, 3 января 2017Миниатюра для версии от 04:59, 3 января 2017635 × 612 (14 КБ)wikimediacommons>Hedwig in WashingtonReverted to version as of 23:29, 31 July 2010 (UTC)

Следующая страница использует этот файл: