(es) Solamente pi
(eo) Nur pi
http://dx.doi.org/10.13140/RG.2.2.34092.90243
Descripción artística:
Dibujo de muchos decimales de con una circunferencia, un diámetro y un radián.
Motivación:
La maravilla de y su omniprescencia en la naturaleza.
Descripción técnica:
En el fondo una circunferencia de longitud y un diámetro de longitud que proveen la definición de .
Luego está sombreado un segmento circular de un radián de amplitud. Un radián es la medida del ángulo central en una circunferencia que abarca un arco cuya longitud es igual a la del radio.
Código (Python):
#!/usr/bin/env python
# coding: utf-8
# Copyright 2015 Eduardo Adam Navas López
# Este programa es Software Libre liberado bajo la licencia GNU GPLv3 o su versión más reciente:
# http://www.gnu.org/licenses/gpl.html
import pygame
import pygame.gfxdraw
import math
import escala
prueba = True
prueba = False #Descomentar para generar versión grande
FUENTE = 'droid sans mono'
if prueba:
TAM = 1000
else:
TAM = 8000
RADIO_CIRCULO = (TAM/2) * 9 / 10
GRUESO_CIRCUNFERENCIA = TAM * 1 / 100
COLOR_FONDO = (255,255,255)
COLOR_TEXTO = pygame.Color(0x90, 0x90, 0x90)
COLOR_CIRCUNFERENCIA = pygame.Color(0xe7,0xa8,0xa8)
COLOR_DIAMETRO = pygame.Color(0xa9,0xa9,0xe8)
COLOR_RADIAN = pygame.Color(0xa9,0xe8,0xa9)
ANCHO = TAM
ALTO = TAM
def dibujarCircunferencia(xc, yc, re, ri, color):
"""Dibuja una circunferencia con centro (xc,yc)
y radio exterior re e interior ri.
"""
global imagen
if re <= ri: return #No funcionaría el algoritmo
def marcarPixel(x,y):
imagen.set_at(( x+xc, y+yc), color)
imagen.set_at(( x+xc,-y+yc), color)
imagen.set_at((-x+xc, y+yc), color)
imagen.set_at((-x+xc,-y+yc), color)
imagen.set_at(( y+xc, x+yc), color)
imagen.set_at(( y+xc,-x+yc), color)
imagen.set_at((-y+xc, x+yc), color)
imagen.set_at((-y+xc,-x+yc), color)
def marcarLineaH(xi,xf,y):
i = xi
while i<=xf:
marcarPixel(i,y)
i = i+1
limites = {}
x = 0
y = re
d = 1-re
while y>x:
if d<0: data-blogger-escaped-d="1-ri" data-blogger-escaped-else:="" data-blogger-escaped-if="" data-blogger-escaped-limites.has_key="" data-blogger-escaped-limites="" data-blogger-escaped-none="" data-blogger-escaped-one="" data-blogger-escaped-while="" data-blogger-escaped-x-y="" data-blogger-escaped-x="" data-blogger-escaped-y="">x:
if d<0: data-blogger-escaped--="" data-blogger-escaped-2="" data-blogger-escaped-altotexto="m[0][3]" data-blogger-escaped-anchotexto="" data-blogger-escaped-archivo:="" data-blogger-escaped-archivo="open(" data-blogger-escaped-aritm="" data-blogger-escaped-c="" data-blogger-escaped-cada_y="" data-blogger-escaped-color_circunferencia="" data-blogger-escaped-color_diametro="" data-blogger-escaped-color_radian="" data-blogger-escaped-color_texto="" data-blogger-escaped-con="" data-blogger-escaped-d="" data-blogger-escaped-de="" data-blogger-escaped-def="" data-blogger-escaped-dibuja="" data-blogger-escaped-dibujar="" data-blogger-escaped-dibujarcircunferencia="" data-blogger-escaped-dibujarsegmento="" data-blogger-escaped-digito="" data-blogger-escaped-egmento="" data-blogger-escaped-elif="" data-blogger-escaped-else:="" data-blogger-escaped-enerar="" data-blogger-escaped-exterior="" data-blogger-escaped-exto="" data-blogger-escaped-f.render="" data-blogger-escaped-f="pygame.font.SysFont(FUENTE," data-blogger-escaped-flotante.="" data-blogger-escaped-for="" data-blogger-escaped-forma="" data-blogger-escaped-genes="" data-blogger-escaped-gitos="" data-blogger-escaped-global="" data-blogger-escaped-grueso_circunferencia="" data-blogger-escaped-i="" data-blogger-escaped-if="" data-blogger-escaped-im="" data-blogger-escaped-imagen.blit="" data-blogger-escaped-imagen.fill="" data-blogger-escaped-imagen="" data-blogger-escaped-img="" data-blogger-escaped-in="" data-blogger-escaped-ineficiente="" data-blogger-escaped-inicio="" data-blogger-escaped-int="" data-blogger-escaped-is="" data-blogger-escaped-las="" data-blogger-escaped-letra="" data-blogger-escaped-limites.has_key="" data-blogger-escaped-limites.iteritems="" data-blogger-escaped-limites="" data-blogger-escaped-linea.strip="" data-blogger-escaped-linea="" data-blogger-escaped-los="" data-blogger-escaped-m="f.metrics(" data-blogger-escaped-marcarlineah="" data-blogger-escaped-math.sin="" data-blogger-escaped-metro="" data-blogger-escaped-n.="" data-blogger-escaped-none:="" data-blogger-escaped-none="" data-blogger-escaped-oner="" data-blogger-escaped-oordenada="" data-blogger-escaped-pi.txt="" data-blogger-escaped-procedimiento="" data-blogger-escaped-pygame.draw.line="" data-blogger-escaped-pygame.gfxdraw.hline="" data-blogger-escaped-r="" data-blogger-escaped-radi="" data-blogger-escaped-radio_circulo="" data-blogger-escaped-range="" data-blogger-escaped-rculo="" data-blogger-escaped-salir="False" data-blogger-escaped-segmento="" data-blogger-escaped-ste="" data-blogger-escaped-str="" data-blogger-escaped-t2:="" data-blogger-escaped-t2="" data-blogger-escaped-tam="" data-blogger-escaped-tg="" data-blogger-escaped-tica="" data-blogger-escaped-true="" data-blogger-escaped-uente="" data-blogger-escaped-un="" data-blogger-escaped-una="" data-blogger-escaped-utiliza="" data-blogger-escaped-while="" data-blogger-escaped-x-y="" data-blogger-escaped-x1="" data-blogger-escaped-x2="" data-blogger-escaped-x="" data-blogger-escaped-xf="" data-blogger-escaped-xi="" data-blogger-escaped-y-t2="" data-blogger-escaped-y="" data-blogger-escaped-zip="">= TAM:
y += altotexto
x = anchotexto*2
if y+altotexto >= TAM:
salir = True
break
if salir: break
if __name__ == "__main__":
global imagen
pygame.init()
imagen = pygame.Surface((ANCHO, ALTO))
dibujar()
pygame.image.save(imagen, "pi1000.png" if prueba else "pi.png")
No hay comentarios:
Publicar un comentario