Про новостную ленту
Nov. 3rd, 2020 09:51 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)
Тактика вполне правильная, ибо первое правило эксперта учит: Ошибочные предсказания забываются, совпавшие остаются в памяти.
Маразматичный Джо во главе самой мощной страны мира -- это, конечно, стрёмно, зато интересно. Будучи на другой стороне Земного шара я бы на это с интересом посмотрел. Особенно, когда история дойдёт до кондиции "Брежнев на английском". Социализм, который американцы решили себе построить, должен быть гармоничным.
А теперь вопрос: не знает ли кто случайно хорошего материала по математике кривых Безье? Нашёл кучу разрозненных статей о том, как удобнее аппроксимировать окружность или в какой точке проще делить, но хочется не таскать куски кода, а посмотреть на алгоритмы с точки зрения математики.
no subject
Date: 2020-11-03 10:01 am (UTC)no subject
Date: 2020-11-03 10:54 am (UTC)no subject
Date: 2020-11-03 12:07 pm (UTC)no subject
Date: 2020-11-03 12:12 pm (UTC)no subject
Date: 2020-11-03 09:27 pm (UTC)Математически, они задаются параметрическим уравнением:
квадратичные
x1 t² + x2 t(1-t) + x3 (1-t)²
кубические
x1 t³ + x2 t²(1-t) + x3 t(1-t)² + x4 (1-t)³,
где xi-тые некоторые точки на плоскости.
Можно определить и для других степеней, но они не используются.
Для проверки прохождения через заданную точку для квадратичной кривой Безье мы получим систему из 2-х кубический уравнений с 7-ю неизвестными. У этой системы уйма решений в общем положении, поэтому не совсем понятен вопрос. Для третей степени получим два уравнения 4-ой степени с 9-ю неизвестными...
Длина кривой Безье считается по общей формуле для длины параметрической кривой.
Для квадратичной кривой Безье получится интеграл от корня квадратного из полинома второй степени по t. (Мне лень выписывать этот полином в явном виде. Формула для полинома x'(t)^2 + y'(t)^2.) Первообразная от таких хоть и существует, но содержит натуральные логарифмы. Поэтому поделить на кусочки одинаковой длины используя только рациональные значения t в общем случае, по-идее, не получится. (Понятно, что если есть какая-то симметрия, скажем, если треугольник натянутый на точки x1, x2, x3 равнобедренный, то она делится пополам в точке соответствующей t =0.5).
Для кубических кривых под интегралом будет стоять корень квадратный из полинома четвертой степени. Первообразные от таких функций содержат эллиптические функции и логарифмы...
no subject
Date: 2020-11-03 10:19 pm (UTC)Самому не очень хочется выводить что-нибудь вроде квадратного корня из полинома четвёртой степени, вот и искал примеры, насколько далеко можно зайти на преобразованиях формул и стоит ли это делать. Или есть какие-то зацепки, чтобы проблемы обойти.
no subject
Date: 2020-11-03 10:30 pm (UTC)Ну и для общего развития можно полистать что-то специализированное по дифференциально и аналитической геометрии и теории интерполяции.
no subject
Date: 2020-11-03 10:59 pm (UTC)С общим развитием и аналитической геометрией проблем нет, но там используются вменяемые кривые. Для преобразований формул удобнее брать не то, что выгодно для численных вычислений и нагляднее для ручного рисования.
no subject
Date: 2020-11-03 11:36 pm (UTC)Я бы все-таки освежил основы аналитической геометрии, там есть странные вещи. Ну и книжку по полиноминальной интеполяции под рукой держал бы - это штука полезная сама по себе.
У меня, когда я пытался в этой тематике сориентироваться, сложилось странное впечатление. Где-то в 90х работы по алгоритмам 2д комп. графике почти исчезли из букварей. Такое чувство, будто все, в теме разбирающиеся, дружно подписали NDA.
no subject
Date: 2020-11-04 07:15 am (UTC)no subject
Date: 2020-11-04 07:33 am (UTC)no subject
Date: 2020-11-04 07:49 am (UTC)В принципе, все подобные алгоритмы реализуют в Inkscape, пусть и не оптимальным образом. Другое дело, восстанавливать смысл по коду не очень удобно, а документаця там хреновейшая.
no subject
Date: 2020-11-04 07:58 am (UTC)Оно не столько тайное, сколько запатентованное и плохо документированное. Это не может быть, это факт - достаточно поковыряться в теме. Единственная открытая реализация - FreeType. Насколько я могу судить по беглому взгляду - довольно неплохо документированная, но одна.
no subject
Date: 2020-11-03 11:13 pm (UTC)