feat: complete academic symbol lexicon heal, 2-column Cooper extraction, and updated assets
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
import math
|
||||
import numpy as np
|
||||
from PIL import Image, ImageDraw
|
||||
|
||||
SIZE = 1024
|
||||
CENTER = SIZE / 2.0
|
||||
R_RING = SIZE * 0.085
|
||||
|
||||
img = Image.new('RGBA', (SIZE, SIZE), (10, 10, 20, 255))
|
||||
draw = ImageDraw.Draw(img)
|
||||
|
||||
# Смещаем начало линий ближе к центру (внутрь кольца)
|
||||
for k in range(3):
|
||||
rot = -math.pi / 2.0 + k * (2.0 * math.pi / 3.0)
|
||||
spine = []
|
||||
widths = []
|
||||
|
||||
# Стартуем глубже к центру: радиус начинается с R_RING * 0.65 (из глубины кольца)
|
||||
num_steps = 90
|
||||
for s in range(num_steps):
|
||||
t = s / float(num_steps - 1)
|
||||
ang = rot + t * 1.75
|
||||
# Радиус растет от внутреннего радиуса кольца (0.65 * R_RING) наружу
|
||||
rad = (R_RING * 0.65) + (t**1.2) * (SIZE * 0.170)
|
||||
px = CENTER + rad * math.cos(ang)
|
||||
py = CENTER + rad * math.sin(ang)
|
||||
spine.append((px, py))
|
||||
w = 26.0 * (1.0 - (t**0.85) * 0.88)
|
||||
widths.append(max(2.0, w))
|
||||
|
||||
left = []
|
||||
right = []
|
||||
for i in range(len(spine)):
|
||||
p = spine[i]
|
||||
w = widths[i] / 2.0
|
||||
if i == 0:
|
||||
dx = spine[1][0] - p[0]
|
||||
dy = spine[1][1] - p[1]
|
||||
elif i == len(spine) - 1:
|
||||
dx = p[0] - spine[i-1][0]
|
||||
dy = p[1] - spine[i-1][1]
|
||||
else:
|
||||
dx = spine[i+1][0] - spine[i-1][0]
|
||||
dy = spine[i+1][1] - spine[i-1][1]
|
||||
length = math.hypot(dx, dy) + 1e-6
|
||||
nx = -dy / length
|
||||
ny = dx / length
|
||||
left.append((p[0] + nx * w, p[1] + ny * w))
|
||||
right.append((p[0] - nx * w, p[1] - ny * w))
|
||||
|
||||
poly = left + right[::-1]
|
||||
draw.polygon(poly, fill=(255, 220, 80, 255))
|
||||
|
||||
# Центральное кольцо ложится поверх оснований
|
||||
draw.ellipse([CENTER - R_RING, CENTER - R_RING, CENTER + R_RING, CENTER + R_RING], outline=(255, 220, 80, 255), width=24)
|
||||
img.save('/home/alexives/.gemini/antigravity-ide/brain/4ff924d9-3d7f-4202-9066-3ac5c3088b8e/scratch/test_shift_center.png')
|
||||
print("Successfully generated test_shift_center.png")
|
||||
Reference in New Issue
Block a user