Екатерина Диденко
один из вопросов к экзамену по фракталам, не знаю, относить это к копмпьютерной графике или нет)
Уравнение вашей прямой:
- k x + y = 0
Тогда перпендикуляр к ней:
n = {-k; 1}
Стартуем с какой-то точки:
r0 = {x0, y0}
Смещаемся вдоль нормали:
r1 = r0 + s n
или:
{x1, y1} = {x0, y0} + s {-k; 1}
или:
{x1, y1} = {x0 - s k, y0 + s}
Посмотрим, какое надо взять s, чтобы r1 оказалась на прямой:
y1 = k x1
y0 + s = k (x0 - s k)
(1 + k^2) s = k x0 - y0
s = (k x0 - y0) / (1 + k^2)
А чтобы найти отражение точки r0 отн-но прямой, нужно сместиться еще на одну такую же величину:
{x1, y1} = {x0; y0} + 2 {-k; 1} (k x0 - y0) / (1 + k^2)
Получаем преобразование для отражения точки отн-но прямой:
x1 = x0 - 2 k (k x0 - y0) / (1 + k^2)
y1 = y0 + 2 (k x0 - y0) / (1 + k^2)