Python aż tak bardzo nie ssie
Mam mnóstwo rzeczy do opisania z ostatnich dwóch tygodni, ale mi się nie chce. Napiszę więc parę słów o dzisiejszym odkryciu.
Monika w ramach jakiegoś projekty z systemów radiokuminkacyjnych czy innego shitu zaprojektowała pokrycie obszaru stacjami bazowymi, zostało jej tylko zilustrować to graficznie. Wybiłem jej z głowy ręczne kreślenie 269 kółek, przekonując, że do tego typu rzeczy nadają się komputery (chociaż wcześniej przyłapałem ją na robieniu kółek w Inkscapie; narysowała całe dwa).
Ponieważ wczoraj oglądałem między innymi Owena Taylora prezentującego Cairo, to napaliłem się na zrobienie tego raz-dwa w pytongu z użyciem tejże biblioteki. Na drodze stały jedynie dwa problemy - nie znam ani pajtona, ani cairo.
Co mi zupełnie nie przeszkodziło w wyklikaniu wspólnie z Moniką czegoś takiego:
#!/usr/bin/python
import cairo
import math
SZER = 800
WYS = 800
ZACHX = 1.66 # zachodzenie komorek pionowo
ZACHY = 1.7 # zachodzenie komorek pionowo
PRK = WYS/(16.3*ZACHX) # promien komorki
file = open("cos.png", "wb")
ctx = cairo.Context()
ctx.set_target_png(file, cairo.FORMAT_ARGB32, SZER, WYS);
ctx.identity_matrix()
## biale tlo
#ctx.set_rgb_color(1, 1, 1)
#ctx.set_line_width(WYS)
#ctx.rectangle(0, 0, SZER, WYS)
#ctx.stroke()
dx = 0
# kolka
ctx.set_line_width(2)
for i in range(17):
for j in range(16):
if j < 6: # w pierwszych 3 rzedach mniejsze przesuniecie
x = PRK + i*ZACHX*PRK - dx*PRK*ZACHX/3.0
else:
x = PRK/1.5 + i*ZACHX*PRK - dx*PRK*ZACHX/3.0
dx = 1 - dx
y = PRK/1.25 + j*ZACHY*PRK
# ctx.set_rgb_color(0, (j^i)/15.0, (i^j)/16.0)
ctx.set_rgb_color(0, 0, 0)
if not (j < 6 and i == 16 and dx): # w pierwszych 3 rzedach po 16
ctx.arc(x, y , PRK, 0, 2*math.pi)
ctx.move_to(x, y)
# ctx.line_to(x, y-2) # kropki
ctx.stroke()
# ramka niebieska
ctx.set_rgb_color(0, 0, 0)
ctx.set_line_width(2)
ctx.rectangle(2, 2, SZER-4, WYS-4)
ctx.stroke()
ctx.show_page()
Oczywiście jakbym znał pytonga, to by było krótsze i ładniejsze. Efekt jednak został osiągnięty - kwadrat zapełniony kółkami to dokładnie to, co było potrzebne. A ja odczuwam przemożną chęć porysowania sobie więcej za pomocą Cairo i pytonga, bo przypomniały mi się zabawy grafiką z lat młodzieńczych (tj. czasów liceum).
A Firefoks jest gópi, bo nie potrafi wyświetlic <img src="Z.svg" width="100"
height="100">
. I nie obchodzą mnie żadne <object>
o których
Doomhammerite coś mamrotał,
ja chce normalnie obrazki osadzać!
Archived comments:
remiq 2005-06-03 20:06:57
A można prosić o pokazanie dzieła? :)
DoomHammer 2005-06-03 20:08:31
Ale to jest normalnie, ziomboj :P
...tzn. bedzie :)
zdzichuBG 2005-06-03 20:25:20
Jakie tam dzie*o, po prostu nieca*e trzysta zachodz*cych na siebie k**ek. Zreszt* ka*dy mo*e uruchomi* u siebie i zobaczy*, prawda? http://luez.ds.pg.gda.pl/~zdzichu/kajropajton/ , jest te* wersja ,,turkusowa tapeta dla Moniki'' z szerokimi, kolorowymi granicami zasi*g*w stacji bazowych.
zgoda (jarek) 2005-06-08 22:37:18
Jak widać, Python pomaga wszystkim. Normalnie prawie Mesjasz, nie?
zdzichuBG 2005-06-08 22:38:13
Dokładnie Jarku. Aż się boję, że się kiedyś tego Pythona naucze.
DoomHammer 2005-06-08 23:01:21
ostatnio pomógł mi w sprawdzaniu eMDepiątek, w celu weryfikacji nagranej płyty. Słowniki pajtonowskie to fajna rzecz :)
cpu 2005-06-28 22:25:42
zdzuchuBG -> mozesz podac do siebie jakis kontakt mam pytanie
Comments
Comments powered by Disqus