File:Octeract Petrie polygon.svg
Archivo original (archivo SVG, nominalmente 2100 × 2100 píxeles, tamaño de archivo: 171 kB)
Leyendas
Resumen[editar]
DescripciónOcteract Petrie polygon.svg |
Petrie polygon graph of the 8-dimensional cube, the Hasse diagram of an 8 element set's power set Compare the Petrie polygon graph of the 4-dimensional cube: The colors represent the Walsh equivalence classes of 3-ary Boolean functions. Simpler Python code is shown in this file. It makes use of code created with the Python code below. |
||
Fuente | Trabajo propio | ||
Autor |
|
||
Otras versiones |
Esta imagen es considerada imagen de calidad después de haber sido evaluada según la guía para imágenes de calidad.
العربية ∙ جازايرية ∙ беларуская ∙ беларуская (тарашкевіца) ∙ български ∙ বাংলা ∙ català ∙ čeština ∙ Cymraeg ∙ Deutsch ∙ Schweizer Hochdeutsch ∙ Zazaki ∙ Ελληνικά ∙ English ∙ Esperanto ∙ español ∙ eesti ∙ euskara ∙ فارسی ∙ suomi ∙ français ∙ galego ∙ עברית ∙ हिन्दी ∙ hrvatski ∙ magyar ∙ հայերեն ∙ Bahasa Indonesia ∙ italiano ∙ 日本語 ∙ Jawa ∙ ქართული ∙ 한국어 ∙ kurdî ∙ Lëtzebuergesch ∙ lietuvių ∙ македонски ∙ മലയാളം ∙ मराठी ∙ Bahasa Melayu ∙ Nederlands ∙ Norfuk / Pitkern ∙ polski ∙ português ∙ português do Brasil ∙ rumantsch ∙ română ∙ русский ∙ sicilianu ∙ slovenčina ∙ slovenščina ∙ shqip ∙ српски / srpski ∙ svenska ∙ தமிழ் ∙ తెలుగు ∙ ไทย ∙ Tagalog ∙ Türkçe ∙ toki pona ∙ українська ∙ vèneto ∙ Tiếng Việt ∙ 中文 ∙ 中文(简体) ∙ 中文(繁體) ∙ +/− |
Source code[editar]
Python and SVG source |
---|
from sympy import cos, pi
from math import log
from my.own.stuff import number_to_reverse_binary_list, hypercube_edges
import psycopg2
con = psycopg2.connect(host='lukulhuft', database='hupu', user='tupu', password='lupu')
cur = con.cursor()
bg_colors = ['fd0', 'e60000', 'bbb', '666', 'ffb4b4']
angle = pi / 16
a = cos(angle)
b = cos(3*angle)
c = cos(5*angle)
d = cos(7*angle)
directions = [
[-a, d], [-b, c], [-c, b], [-d, a], [d, a], [c, b], [b, c], [a, d]
] # directions of the 8 edges leaving the lowest vertex (as sympy objects)
big_factor = 1000 / (a + b + c + d) # diameter of the whole diagram shall be 2000
tiny_factor = 0.029 # the tiny dots in the vertices must be slightly off center
################################## vertices ##################################
sym_coordinates = [] # sympy objects
svg_coordinates = [] # rounded and converted to strings
svg_vertices = ''
svg_numbers = ''
for i in range(256):
cur.execute("""select wec from boolf3 where numval = %s""" % (i))
bg_color_index = cur.fetchone()[0] + 1 # from the DB comes a value between -1 and 3
bg_color = bg_colors[bg_color_index]
binary_vector = number_to_reverse_binary_list(i, 8)
x_sym = 0
y_sym = 0
for j in range(8):
if binary_vector[j]:
x_sym += directions[j][0]
y_sym += directions[j][1]
x_svg = str(round(big_factor * x_sym, 3))
y_svg = str(round(-big_factor * y_sym + 1000, 3))
sym_coordinates.append({'x': x_sym, 'y': y_sym})
svg_coordinates.append({'x': x_svg, 'y': y_svg})
svg_vertices += '<circle cx="%s" cy="%s" r="14.5" fill="#%s"/>' % (x_svg, y_svg, bg_color)
svg_numbers += '<text x="%s" y="%s">%s</text>' % (x_svg, y_svg, i)
################################## edges ##################################
svg_edges = ''
svg_tiny_dots = ''
edges = hypercube_edges(8)
for edge in edges: # ``edge`` is a pair of integers between 0 and 255
bottom = edge[0]
top = edge[1]
bottom_x_svg = svg_coordinates[bottom]['x']
bottom_y_svg = svg_coordinates[bottom]['y']
top_x_svg = svg_coordinates[top]['x']
top_y_svg = svg_coordinates[top]['y']
svg_edges += '<line x1="%s" y1="%s" x2="%s" y2="%s"/>' % (bottom_x_svg, bottom_y_svg, top_x_svg, top_y_svg)
edge_direction = directions[int(log(bottom ^ top, 2))]
tiny_edge_direction_x = tiny_factor * edge_direction[0]
tiny_edge_direction_y = tiny_factor * edge_direction[1]
bottom_x_sym = sym_coordinates[bottom]['x']
bottom_y_sym = sym_coordinates[bottom]['y']
top_x_sym = sym_coordinates[top]['x']
top_y_sym = sym_coordinates[top]['y']
bottom_tiny_x_sym = bottom_x_sym + tiny_edge_direction_x
bottom_tiny_y_sym = bottom_y_sym + tiny_edge_direction_y
top_tiny_x_sym = top_x_sym - tiny_edge_direction_x
top_tiny_y_sym = top_y_sym - tiny_edge_direction_y
bottom_tiny_x_svg = str(round(big_factor * bottom_tiny_x_sym, 3))
bottom_tiny_y_svg = str(round(-big_factor * bottom_tiny_y_sym + 1000, 3))
top_tiny_x_svg = str(round(big_factor * top_tiny_x_sym, 3))
top_tiny_y_svg = str(round(-big_factor * top_tiny_y_sym + 1000, 3))
svg_tiny_dots += '<circle cx="%s" cy="%s" r="1.8"/><circle cx="%s" cy="%s" r="1.8"/> ' % \
(bottom_tiny_x_svg, bottom_tiny_y_svg, top_tiny_x_svg, top_tiny_y_svg)
################################## file ##################################
svg_string = """<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="2100" height="2100" viewBox="-1050 -1050 2100 2100">
<!-- edges -->
<g style="stroke:#000; stroke-width:1.5; stroke-opacity:0.5;">
%s
</g>
<!-- vertices -->
<g style="stroke:#000; stroke-width:1.5px;">
%s
</g>
<!-- tiny dots -->
%s
<!-- numbers -->
<g style="text-anchor: middle; letter-spacing: -1;" font-size="10px" font-family="sans-serif" transform="translate(0, 3.7)" fill-opacity="0.5">
%s
</g>
</svg>
""" % (svg_edges, svg_vertices, svg_tiny_dots, svg_numbers)
svg_file = open('Octeract Petrie polygon.svg', 'w')
svg_file.write(svg_string)
|
Licencia[editar]
Se autoriza la copia, distribución y modificación de este documento bajo los términos de la licencia de documentación libre GNU, versión 1.2 o cualquier otra que posteriormente publique la Fundación para el Software Libre; sin secciones invariables, textos de portada, ni textos de contraportada. Se incluye una copia de la dicha licencia en la sección titulada Licencia de Documentación Libre GNU.http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue |
- Eres libre:
- de compartir – de copiar, distribuir y transmitir el trabajo
- de remezclar – de adaptar el trabajo
- Bajo las siguientes condiciones:
- atribución – Debes otorgar el crédito correspondiente, proporcionar un enlace a la licencia e indicar si realizaste algún cambio. Puedes hacerlo de cualquier manera razonable pero no de manera que sugiera que el licenciante te respalda a ti o al uso que hagas del trabajo.
Historial del archivo
Haz clic sobre una fecha y hora para ver el archivo tal como apareció en ese momento.
Fecha y hora | Miniatura | Dimensiones | Usuario | Comentario | |
---|---|---|---|---|---|
actual | 20:21 22 jun 2016 | 2100 × 2100 (171 kB) | Watchduck (discusión | contribs.) | pointlessly tiny change | |
19:07 22 jun 2016 | 2100 × 2100 (171 kB) | Watchduck (discusión | contribs.) | clean code, colors for equivalence classes | ||
23:58 2 oct 2009 | 1375 × 1375 (1022 kB) | Watchduck (discusión | contribs.) | |||
18:15 2 oct 2009 | 1488 × 1488 (1022 kB) | Watchduck (discusión | contribs.) | {{Information |Description={{en|1=Symmetrical central graph of the 8 dimensional cube (Octeract) and Hasse diagram of an 8 element sets power set. (Compare: [[:Image:Hypercubestar.svg|Central gr |
No puedes sobrescribir este archivo.
Usos del archivo
Las siguientes páginas usan este archivo:
- User:Watchduck/list
- User talk:Watchduck
- Commons:Quality images/Subject/Non photographic media
- Commons:Quality images candidates/Archives June 27 2016
- File:16x16 matrix like octeract Hasse diagram.svg
- File:3-ary Boolean functions in octeract graph; binary Walsh spectrum 0.svg
- File:3-ary Boolean functions in octeract graph; binary Walsh spectrum 1.svg
- File:3-ary Boolean functions in octeract graph; binary Walsh spectrum 2.svg
- File:3-ary Boolean functions in octeract graph; binary Walsh spectrum 3.svg
- File:3-ary Boolean functions in octeract graph; binary Walsh spectrum 4.svg
- File:3-ary Boolean functions in octeract graph; binary Walsh spectrum 5.svg
- File:3-ary Boolean functions in octeract graph; binary Walsh spectrum 6.svg
- File:3-ary Boolean functions in octeract graph; binary Walsh spectrum 7.svg
- File:8-cube.svg
- File:Boolean function 0000 0000.svg
- File:Boolean function 1111 1111.svg
- File:Boolean functions like 0110 1000.svg
- File:Boolean functions like 0110 1000 (minimal negation operator).svg
- File:Boolean functions like 0111 1110.svg
- File:Boolean functions like 1000 0000.svg
- File:Boolean functions like 1000 0001.svg
- File:Boolean functions like 1000 0010.svg
- File:Boolean functions like 1000 0100.svg
- File:Boolean functions like 1000 1000.svg
- File:Boolean functions like 1001 0000.svg
- File:Boolean functions like 1001 0110.svg
- File:Boolean functions like 1001 1000.svg
- File:Boolean functions like 1001 1001.svg
- File:Boolean functions like 1010 0000.svg
- File:Boolean functions like 1010 0100.svg
- File:Boolean functions like 1010 0101.svg
- File:Boolean functions like 1010 1000.svg
- File:Boolean functions like 1010 1001.svg
- File:Boolean functions like 1010 1010.svg
- File:Boolean functions like 1011 1000.svg
- File:Boolean functions like 1011 1100.svg
- File:Boolean functions like 1011 1110.svg
- File:Boolean functions like 1100 0000.svg
- File:Boolean functions like 1100 0010.svg
- File:Boolean functions like 1100 0011.svg
- File:Boolean functions like 1100 1000.svg
- File:Boolean functions like 1100 1001.svg
- File:Boolean functions like 1100 1010.svg
- File:Boolean functions like 1100 1100.svg
- File:Boolean functions like 1101 1010.svg
- File:Boolean functions like 1101 1110.svg
- File:Boolean functions like 1110 0000.svg
- File:Boolean functions like 1110 0001.svg
- File:Boolean functions like 1110 0100.svg
- File:Boolean functions like 1110 0110.svg
- File:Boolean functions like 1110 1000.svg
- File:Boolean functions like 1110 1001.svg
- File:Boolean functions like 1110 1001 (minimal negation operator).svg
- File:Boolean functions like 1110 1010.svg
- File:Boolean functions like 1110 1100.svg
- File:Boolean functions like 1110 1110.svg
- File:Boolean functions like 1111 0000.svg
- File:Boolean functions like 1111 0110.svg
- File:Boolean functions like 1111 1000.svg
- File:Boolean functions like 1111 1010.svg
- File:Boolean functions like 1111 1100.svg
- File:Boolean functions like 1111 1110.svg
- Template:3-ary Boolean functions; small equivalence classes; cubes
- Category:3-ary Boolean functions in octeract graph
Uso global del archivo
Las wikis siguientes utilizan este archivo:
- Uso en be.wikipedia.org
- Uso en cv.wikipedia.org
- Uso en en.wikipedia.org
- Uso en en.wikiversity.org
- Uso en eo.wikipedia.org
- Uso en es.wikipedia.org
- Uso en it.wikipedia.org
- Uso en ro.wikipedia.org
- Uso en sl.wikipedia.org
- Uso en uk.wikipedia.org
- Uso en zh.wikipedia.org
Metadatos
Este archivo contiene información adicional, probablemente añadida por la cámara digital o el escáner usado para crearlo o digitalizarlo.
Si el archivo ha sido modificado desde su estado original, pueden haberse perdido algunos detalles.
Anchura | 2100 |
---|---|
Altura | 2100 |