Квант
Разное

Закрученные многоугольники

Усов В., Чубарев А.

47

Закрученные многоугольники

Узор, изобравенный на второй странице обложки, составлен из «закрученных многоугольников». Закрученный многоугольник состоит из цепочки правых многоугольников: каждый последующий многоугольник M′M' вписан в предыдущий MM (вершины M′M' лежат на стороне MM), притом M′M' подбен MM (коэффициент подобия фиксирован для данной цепочки).

Такие цепочки выглудят особенно эффективно, если они построены на семействе одинаковых многоугольников; покрывающих плоскость (без перекрытия и пробегов), скажем, на семействе квадратов, правых треугольников или шестиугольников.

Каким образом ЭВМ, нарисовавшая наш узор, строит закрученные многоугольники? Машина «дается» исходный многоугольник P1P2...PnP_1P_2...P_n (назовем его многоугольником первого ранга), то есть список вершин, заданных своим координатами

P1(x1;y1),P2(x2;y2),...,Pn(xn;yn).P_1(x_1; y_1), P_2(x_2; y_2), ..., P_n(x_n; y_n).

Далее, пользовясь графопостроителем, машина рисует стороны многоугольника, последовательно соединяя вершины отрезками. Затем она находит координаты вершин P1′,P2′,...,Pn′P_1', P_2', ..., P_n' следующего многоугольника (второго ранга) по такому правилу:

(xi′;yi′)=(xi;yi−1)+k(xi+1−xi;yi+1−yi)(x'_i; y'_i) = (x_i; y_{i-1}) + k(x_{i+1} - x_i; y_{i+1} - y_i)

(мы советем читателю сделать чертеж, например, для n=6n=6, и убедиться в том, что коэффициент kk в пределышей формуле равен

k=∣PiPi′∣∣PiPi+1∣.k = \frac{|P_i P'_i|}{|P_i P_{i+1}|}.

Далее машина последовательно соединяет вершины P1′,P2′,...,Pn′,Pi′P_1', P_2', ..., P_n', P'_i, получая тем самым рисунок многоугольника второго ранга. Из многоугольника второго ранга ЭВМ получает многоугольник третього ранга. И так далее.

Чтобы избежать клякссы (которая получится при скоплении мелких многоугольников к центру многоугольника третього ранга), в программе число многоугольников в цепочке ограничивается.

Учащимся Заочной школе программирования мы предлагаем составить программу на Раппре (с использованием Шпаги) для построения узора такого типа и прислать ее нам в качестве необязательного задания.

В. Усов, А. Чубарев