Это очень широкий вопрос, но если бы мне пришлось это делать, я бы, вероятно, начал со сплайнов. Я бы взял N точек
(w/3 * (1+random()),0)
(w/3 * (1+random()),h/N)
(w/3 * (1+random()),2*h/N)
...
(w/3 * (1+random()),h)
, где N примерно равно 10, а random () возвращает число, скажем, от -0,3 до 0,3, и пропустил через них сплайн. Я повторяю это при 2 * w / 3 и получаю другую кривую. Затем я проделываю то же самое по горизонтали.
Это означает, что части будут выглядеть как изогнутые прямоугольники. Но вы можете уточнить горизонтальные линии, чтобы они, возможно, не входили в один прямой снимок, а вместо этого имели биты между левой границей и первым вертикальным сплайном, а затем другую кривую между первым и вторым вертикальным сплайном.