2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Равна ли доля пройденности кривой Безье параметру t?
Сообщение30.05.2016, 13:27 
Правильно ли я понимаю, что точка $(x(t), y(t))$ двумерной кривой Безье делит кривую на две части, длиной первой из которой составляет долю $t$ от длины всей кривой?
Не знаю, почему, но почему-то так подумалось... Так ли это?

Интересен как сам факт, так и намётки к доказательству.

Если факт не верен, то есть ли возможность как-то функционально выразить долю пройденности через $t$ и наоборот?

 
 
 
 Re: Равна ли доля пройденности кривой Безье параметру t?
Сообщение30.05.2016, 13:41 
fractalon в сообщении #1127156 писал(а):
Не знаю, почему, но почему-то так подумалось... Так ли это?
Это несложно проверить. Вычисляете длину вектора $\frac d{dt}\mathbf r(t)$, и на промежутке, где она равна 1, параметризация кривой натуральная, т. е. длина куска от $t_1$ до $t_2$ равна $|t_1-t_2|$.

fractalon в сообщении #1127156 писал(а):
есть ли возможность как-то функционально выразить долю пройденности через $t$ и наоборот?
Чтобы получить натуральную параметризацию из произвольной, надо решить в общем случае страшненькое уравнение. Я сейчас его не нарисую здесь, но оно не очень трудно выводится из требования выше — сначала выразите произвольную через натуральную.

 
 
 
 Re: Равна ли доля пройденности кривой Безье параметру t?
Сообщение30.05.2016, 14:07 
Аватара пользователя
Любую кривую можно параметризовать натуральным образом, т.е. таким что $s$ длина дуги. Вас же, как я понимаю, интересует стандартная параметризация, описанная здесь и легко видеть что ответ как правило отрицательный.

 
 
 
 Re: Равна ли доля пройденности кривой Безье параметру t?
Сообщение30.05.2016, 14:57 
Аватара пользователя
Можно проверить, что $\left|\frac{d\mathbf r(t)}{dt}\right|$ не константа. А можно написать небольшую программку, которая рисует кривую Безье по точкам с постоянным шагом по $t$. Вот что получилось у меня:
Изображение
Процедура:
код: [ скачать ] [ спрятать ]
Используется синтаксис C++
void DrawBezier()
{
   const double
      p0x=0,   p0y=0,
      p1x=0.7, p1y=1,
      p2x=1,   p2y=1,
      p3x=1,   p3y=0;

   for (double t=0; t<=1; t+=0.02)
   {
      double
         u=1-t,
         x=u*u*u*p0x+3*t*u*u*p1x+3*t*t*u*p2x+t*t*t*p3x,
         y=u*u*u*p0y+3*t*u*u*p1y+3*t*t*u*p2y+t*t*t*p3y;
      AddPoint(x, y);
   }
}
 

По-моему, достаточно убедительно.
Интересно, что на картинке точки гуще там, где выше кривизна. Было бы полезно для практики, если бы это было общим правилом.

 
 
 
 Re: Равна ли доля пройденности кривой Безье параметру t?
Сообщение30.05.2016, 21:17 
Да, действительно, затупил.

Насколько я помню длина кривой выражается как $\int {\sqrt{x'(t)^2 + y'(t)^2}\ dt}$. В нашем случае функции - полиномы, и в итоге для кубической кривой (меня для моей практической задачи только такие интересуют) нужно брать какой-нибудь $\int {\sqrt{a t^4 + b t^3 + c t^2 + d t + e}\ dt}$. Есть для этого общая удобоваримая формула? Или как вообще к этому подбираться?

 
 
 
 Re: Равна ли доля пройденности кривой Безье параметру t?
Сообщение30.05.2016, 22:14 
fractalon в сообщении #1127331 писал(а):
Есть для этого общая удобоваримая формула?

Удобоваримой -- нет. Но она и не нужна. В конце-то концов, разные там безьи сочинялись вовсе не ради длин.

 
 
 
 Re: Равна ли доля пройденности кривой Безье параметру t?
Сообщение30.05.2016, 22:31 
svv в сообщении #1127188 писал(а):
Интересно, что на картинке точки гуще там, где выше кривизна. Было бы полезно для практики, если бы это было общим правилом.

Ну как бы не совсем оно общее.
Т.е. если не выпендриваться --- то по жизни всегда так было вроде.
Но я вот тут чуть повыпендривался: контрольные точки коллинеарными сделал (они крестиками нарисованы).
5 примеров таких кривых Безье нарисовал.
Кривизна везде и у всех одинакова, а точки (с равным шагом по параметру) то гуще, то реже. Что-то ещё на их густоту влияет...

Изображение

Вожделенная (топикстартером) равномерность --- только у первой (нижней) кривой Безье.

-- 31 май 2016, 00:10:47 --

fractalon в сообщении #1127331 писал(а):
Или как вообще к этому подбираться?

К чему именно подбираться?
На стартовый вопрос темы ответы даны: НЕТ, кроме супер-частного случая. И там более нет чего-то, к чему стоило бы "подбираться".

Конкретная задача, к которой подобраться хочется, не озвучена.
Либо длины не нужны, либо Безье ни к чему. Это я про неизвестную мне задачу так самоуверенно заявляю.

А если требуется и то и другое --- то это, скорее всего, не задача, а неудачная (надуманная) тема для диплома/курсовой.

 
 
 
 Re: Равна ли доля пройденности кривой Безье параметру t?
Сообщение31.05.2016, 09:11 
Аватара пользователя
Red_Herring в сообщении #1127162 писал(а):
Любую кривую можно параметризовать натуральным образом, т.е. таким что $s$ длина дуги.

Даже НЕ спрямляемую? :shock:

 
 
 
 Re: Равна ли доля пройденности кривой Безье параметру t?
Сообщение31.05.2016, 10:25 
Аватара пользователя
Brukvalub в сообщении #1127458 писал(а):
Даже НЕ спрямляемую?

Разумеется, только спрямляемую. Но речь ведь шла о приличных кривых.

 
 
 [ Сообщений: 9 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group