Skip to content

Latest commit

 

History

History
17 lines (15 loc) · 1.78 KB

File metadata and controls

17 lines (15 loc) · 1.78 KB

Visualiser -- класс, который визуализирует действие системы диффуров на набор точек. В нем derivativeX и derivativeY -- функции для подсчета x' и y' соответственно. Для визуализации используется метод, аналогичный ломаной Эйлера: точка с координатами (x, y) переходит в точку с координатами (x + f_1(x, y) * h, y + f_2(x, y) * h). Это происходит в методе transform. Это преобразование происходит 10 раз в секунду, а h является достаточно маленьким, что позволяет добиться большой точности. Кроме того, есть переменная trace. Если она true, то точки оставляют за собой след. Таким образом рисуется множество интегральных кривых, проходящих через соотвнтствующие точки.

Асимптотика работы визуализатора: O(<количество кадров> * <количество точек> * <время подсчета функции производной>)

В классе Main происходит само расплющивание кота. Кот - набор точек. Для того чтобы расплющить его, нужна система диффуров, которая сохраняет площадь. Это значит xy = C, откуда следует x'y + y'x = 0, то есть x'/x = -y'/y. Тогда нам подходит система

x' = x
y' = -y