TGViewer
Прогаем с кенгурой Прогаем с кенгурой @coding_with_kangaroo · 236 subscribers
Post #117 196
Более интересна тема различных задач на этой (да и на лююой другой) кривой

- Поиск значения параметра для заданной точки (для квадратичной и линейной все ясно, для кубической уже сложнее, для 4+ - хардкор)
- Апроксимация набора точек кривой, то есть поиск опорных и контрольных точек для случайного набора точек на плоскости, которые мы хотим описать кривой - есть для этого специальные алгоритмы типа Дугласа-Пекера
- Нормаль и касательная в точке; тут все просто - у нас последний отрезок это и есть касательная - нормализуем ее и готово, повернуть это потом до нормали тоже не рокет сайнс - переставляем координаты и одной из них меняем знак
- Производные (берем по каждой координате отдельно), например, для определения шага параметра в точке (чтоб в пиксель попадать)
- Расстояние до кривой от точки (тут сложнее, потому что может быть несколько решений - зависит от степени)

Что я делал с кривыми Безье

- 2й степени для движка рисования в Pixelmator. Квадратичной вполне хватает для рисования, если кривую не нужно редактировать (если нужно, стандарт - кубическая)
- 3й степени для апроксимации ввода пользователя со стилуса на айпаде, чтобы потом редактировать и хранить всю кучу параметров (позиция, время, наклон, азимут, нажим) для Procreate Dreams; пожалуй, эта была одна из самых интересных задач на тему Безье
- генерация вектора из растра
- рендер кривых Безье на шейдерах: с квадратичной все просто, с кубической все не просто, особенно на крайних случаях, когда кривая вырождается.

Кстати, на тему квадратичной кривой - есть прием, как это почти бесплатно считать на шейдере: делаем текстуру 2х2, по диагонали ставим значения опорных точек, по второй диагонали - контрольной (одинаковые) и двигаемся по первой диагонали между центрами пикселей по параметру t c билинейной интерполяцией - результат сэмплирования даст ответ. Когда сэмплинг был дешевле математики, это неплохо экономило ресурсы, так как использовало внутренние оптимизации видюхи для сэмплинга
  • ❤ 4
  • 🔥 3
More from @coding_with_kangaroo
  1. Oct 7, 2026Пополнение библиотеки. Буду расширять область, а то все картинки да картинки
  2. Oct 7, 2026Post #823
  3. Oct 7, 2026А вот еще вспомнил про pixator и решил затащить поддержку видео
  4. Oct 6, 2026Еще вот так умеет
  5. Oct 6, 2026Оно даже работает
  6. Oct 6, 2026Спагетти-архитектура Я знаю, что можно красиво и аккуратно, но ножек в наличии нет, а с ал…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →