Файл: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-файлу правильний.
 Це векторне зображення було створено з допомогою Python
 and with 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)

Така сторінка використовує цей файл: