Da, se poate, de fapt exact așa am făcut imaginea din problemă. Nu știam, deși bănuiam, că au mai făcut și alții astfel de programe.
Pentru desenarea diagramei într-o imagine matricială (cu pixeli), algoritmul e super simplu: trebuie doar să iei fiecare pixel din imagine și să vezi care din punctele date e cel mai apropiat. În funcție de asta colorezi pixelul cu o culoare sau alta.
Pe de altă parte, pentru a desena diagrama ca imagine vectorială, eu am folosit următorul algoritm: pentru a calcula forma poligonului corespunzător unui punct dat (pe care îl numesc în continuare punct curent), am presupus mai întîi că punctul acela e singur, deci poligonul inițial are forma pătratului mare. Apoi am adăugat unul cîte unul celelalte puncte. La fiecare adăugare am tăiat o bucată din poligonul curent ca să țin cont de existența punctului nou adăugat. Pentru asta a trebuit să calculez mediatoarea punctului curent și a punctului adăugat, să intersectez poligonul curent cu acea mediatoare și să păstrez numai bucata mai apropiată de punctul curent. Calculul nu e complicat, e simplă geometrie analitică. Tot programul încape lejer pe o foaie A4, cu tot cu operațiile care țin de desenare și salvare într-un fișier SVG.
Desenul din enunț este de fapt vectorial, dar ca să-l pun aici a trebuit să-l transform în format matricial. Eu l-am convertit în PNG, dar undeva pe drum a devenit JPG, probabil cînd l-am urcat la Tinypic.com.