Сова

Данная работа представляет собой изображение совы, использующее лишь стандартную функцию построения прямой в JS.
Все остальные примитивы построены с использованием данной функции, аппроксимируя параметрические кривые отрезками.

В работе реализованы следующие функции:

  • Функция аппроксимации параметрической кривой многоугольником (getParametricCurve)
    Функция принимает в качестве параметров уравнение кривой (лямбда-функция) а также начальные и конечные значения параметра $t$.
  • Функция построения многоугольника по заданным точкам (drawParametricCurve)
  • Функция построения ломаной линии по заданным точкам (placeParametricCurve)
  • Функция построения дуги окружности (arc)
    Дуга задана параметрическим уравнением:
    $$
    \begin{cases}
    x(t) = x_0 + Rcos(t) \\
    y(t) = y_0 + Rsin(t)
    \end{cases}
    $$
    где $t \in [0, 2\pi]$, $(x_0, y_0)$ - координаты центра окружности, $R$ - радиус окружности.
  • Функция построения кубической кривой Безье (bezier)
    Кривая задана параметрическим уравнением:
    $$
    \begin{cases}
    x(t) = (1-t)^3x_0 + 3t(1-t)^2x_1 + 3t^2(1-t)x_2 + x_3 \\
    y(t) = (1-t)^3y_0 + 3t(1-t)^2y_1 + 3t^2(1-t)y_2 + y_3
    \end{cases}
    $$
    где $t \in [0, 1]$, $(x_i, y_i)$ - координаты ключевых точек.
  • Функция построения собственной параметрической кривой "капля" (drop)