-
Notifications
You must be signed in to change notification settings - Fork 1
/
circle_moire_no_palette.py
48 lines (37 loc) · 1.24 KB
/
circle_moire_no_palette.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/usr/bin/env python
# Vytvoreni textury s "kruznicovym moare"
from typing import Tuple
from PIL import Image
# textura by mela byt ctvercova a jeji sirka i vyska by mela byt
# mocninou cisla 2
IMAGE_WIDTH = 256
IMAGE_HEIGHT = 256
def recalc_circle_pattern(
image: Image.Image, xmin: float, ymin: float, xmax: float, ymax: float
) -> None:
"""Funkce provadejici vypocet moare s kruznicovym vzorkem."""
width, height = image.size # rozmery obrazku
stepx = (xmax - xmin) / width
stepy = (ymax - ymin) / height
print(xmin, xmax, ymin, ymax, width, height, stepx, stepy)
y1 = ymin
for y in range(height):
x1 = xmin
for x in range(width):
x1 += stepx
x2 = x1 * x1
y2 = y1 * y1
i = (int)(x2 + y2) & 255
color = (i, i, i)
image.putpixel((x, y), color)
y1 += stepy
def main() -> None:
"""Vypocet textur s jejich ulozenim do souboru."""
for i in range(0, 50, 10):
image = Image.new("RGB", (IMAGE_WIDTH, IMAGE_HEIGHT))
mez = (2 << 5) + i * 2.5
recalc_circle_pattern(image, -mez, -mez, mez, mez)
fileName = f"patternA{i:02d}.png"
image.save(fileName)
if __name__ == "__main__":
main()