Мне нужно запрограммировать треугольник Серпинского с PHP, который дает следующий вывод изображения:
Я действительно не знаю, с чего начать, поэтому любые алгоритмы или идеи приветствуются.
Учитывая координаты вершин внешнего треугольника, вы можете легко найти координаты вершин большого пустого треугольника (они являются средней точкой ребер).
Итак, из внешнего треугольника вы можете построить три больших непустых треугольника.
Треугольник Серпинского получается повторением этого процесса несколько раз рекурсивно. Когда вы достигаете желаемой глубины рекурсии, вы просто рисуете треугольник.
В псевдокоде:
Sierpinski(P, Q, R, Depth):
if Depth == Limit:
Line(P, Q); Line(Q, R); Line(R, P)
else:
PQ= (P + Q) / 2; QR= (Q + R) / 2; RP= (R + P) / 2;
Sierpinski(P, PQ, RP, Depth + 1);
Sierpinski(Q, QR, PQ, Depth + 1);
Sierpinski(R, RP, QR, Depth + 1);
Других решений пока нет …