"""Draw the hull grid in param space (v across, phi down, phi 0 = keel in the middle) with openings and fold-overs.""" import sys import numpy as np from PIL import Image, ImageDraw import ae_hull as H g = H.plan() V, P = g['V'], g['P'] K = 4 W, Hh = int((700 - 225) * K / 2) * 2, 1400 img = Image.new('RGB', (int((665 - 228) * K), 1200), (20, 20, 30)); d = ImageDraw.Draw(img) def xy(v, p): p = np.mod(p + 0.5, 1.0) # keel at 0.5 -> centre return ((v - 228) * K, p * 1200) hole = H.hole_mask(g); fl = H.flipped(g) for i in range(g['NI'] - 1): for j in range(H.NJ): jn = (j + 1) % H.NJ q = [xy(V[i, j], P[i, j]), xy(V[i + 1, j], P[i + 1, j]), xy(V[i + 1, jn], P[i + 1, jn]), xy(V[i, jn], P[i, jn])] if max(abs(a[1] - b[1]) for a, b in zip(q, q[1:] + q[:1])) > 600: continue col = (200, 40, 40) if fl[i, j] else ((40, 90, 160) if hole[i, j] else None) d.polygon(q, fill=col, outline=(110, 110, 120)) img.save('../previews/_grid_param.png') print(img.size)