Файл:Regular divisibility lattice.svg
Материал из testwiki
Перейти к навигации
Перейти к поиску
Размер этого PNG-превью для исходного SVG-файла: 800 × 475 пкс. Другие разрешения: 320 × 190 пкс | 640 × 380 пкс | 1024 × 608 пкс | 1280 × 760 пкс | 2560 × 1519 пкс | 1363 × 809 пкс.
Исходный файл (SVG-файл, номинально 1363 × 809 пкс, размер файла: 13 КБ)
Этот файл находится на Викискладе и может использоваться другими проектами. Информация с его страницы описания приведена ниже.
Краткое описание
| ОписаниеRegular divisibility lattice.svg | A Hasse diagram of divisibility relationships among regular numbers up to 400. As shown by the horizontal light red lines, the vertical position of each number is proportional to its logarithm. Inspired by similar diagrams in a paper by Kurenniemi [1]. |
| Дата | 14 марта 2007 (дата первоначальной загрузки файла на вики) |
| Источник | Перенесено с en.wikipedia на Викисклад. |
| Автор | David Eppstein из английский Википедия |
Лицензирование
| Public domainPublic domainfalsefalse |
| Автор этого произведения, David Eppstein из английский Википедия, передаёт его в общественное достояние. Это разрешение действует по всему миру. В некоторых странах это не может быть возможно юридически, в таком случае: David Eppstein предоставляет любому право использовать данное произведение в любых целях, без каких-либо условий, если только такие условия не требуются по закону.Public domainPublic domainfalsefalse |
Source code
The Python source code for generating this image:
from math import log
limit = 400
radius = 17
margin = 4
xscale = yscale = 128
skew = 0.285
def A051037():
yield 1
seq = [1]
spiders = [(2,2,0,0),(3,3,0,1),(5,5,0,2)]
while True:
x,p,i,j = min(spiders)
if x != seq[-1]:
yield x
seq.append(x)
spiders[j] = (p*seq[i+1],p,i+1,j)
def nfactors(h,p):
nf = 0
while h % p == 0:
nf += 1
h //= p
return nf
seq = []
for h in A051037():
if h > limit:
break
seq.append((h,nfactors(h,2),nfactors(h,3),nfactors(h,5)))
leftmost = max([k for h,i,j,k in seq])
rightmost = max([j for h,i,j,k in seq])
leftwidth = int(0.5 + log(5) * leftmost * xscale + radius + margin)
rightwidth = int(0.5 + log(3) * rightmost * xscale + radius + margin)
width = leftwidth + rightwidth
height = int(0.5 + log(limit) * yscale + 2*(radius + margin))
def place(h,i,j,k):
# logical coordinates
x = j * log(3) - k * log(5) + i * skew
y = log(h)
# physical coordinates
x = (x*xscale) + leftwidth
y = (-y*yscale) + height - radius - margin
return (x,y)
print '''<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="%d" height="%d">''' % (width,height)
print ' <g style="fill:none;stroke:#ffaaaa;">'
l = 1
base = 1
while l <= limit:
y = -yscale*log(l) + height - radius - margin
print ' <path d="M0,%0.2fL%d,%0.2f"/>' % (y,width,y)
l += base
if l == 10*base:
base = l
print " </g>"
print ' <g style="fill:none;stroke-width:1.5;stroke:#0000cc;">'
def drawSegment(p,q):
x1,y1=p
x2,y2=q
print ' <path d="M%0.2f,%0.2fL%0.2f,%0.2f"/>' % (x1,y1,x2,y2)
for h,i,j,k in seq:
x,y = place(h,i,j,k)
if i > 0:
drawSegment(place(h//2,i-1,j,k),(x,y))
if j > 0:
drawSegment(place(h//3,i,j-1,k),(x,y))
if k > 0:
drawSegment(place(h//5,i,j,k-1),(x,y))
print " </g>"
print ' <g style="fill:#ffffff;stroke:#000000;">'
for h,i,j,k in seq:
x,y = place(h,i,j,k)
print ' <circle cx="%0.2f" cy="%0.2f" r="%d"/>' % (x,y,radius)
# pairs of first value with size: size of that value
fontsizes = {1:33, 5:30, 10:27, 20:24, 100:20, 200:18}
for h,i,j,k in seq:
x,y = place(h,i,j,k)
if h in fontsizes:
print " </g>"
print ' <g style="font-family:Times;font-size:%d;text-anchor:middle;">' % fontsizes[h]
lower = fontsizes[h] / 3.
print ' <text x="%0.2f" y="%0.2f">%d</text>' %(x,y+lower,h)
print " </g>"
print "</svg>"
Исходный журнал загрузок
Первоначальная страница описания находилась здесь. Все нижеперечисленные имена участников относятся к en.wikipedia.
- 2007-03-14 05:08 David Eppstein 1363×809×0 (13167 bytes) A [[Hasse diagram]] of [[divisibility]] relationships among [[regular number]]s up to 400. Inspired by similar diagrams in a paper by Kurenniemi [http://www.beige.org/projects/dimi/CSDL2.pdf].
Краткие подписи
Добавьте однострочное описание того, что собой представляет этот файл
Элементы, изображённые на этом файле
изображённый объект
История файла
Нажмите на дату/время, чтобы увидеть версию файла от того времени.
| Дата/время | Миниатюра | Размеры | Участник | Примечание | |
|---|---|---|---|---|---|
| текущий | 03:57, 13 марта 2010 | 1363 × 809 (13 КБ) | wikimediacommons>David Eppstein | Fix fonts |
Использование файла
Следующая страница использует этот файл: