2014 dxdy logo

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

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


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Равна ли доля пройденности кривой Безье параметру t?
Сообщение30.05.2016, 13:27 


08/09/13
210
Правильно ли я понимаю, что точка $(x(t), y(t))$ двумерной кривой Безье делит кривую на две части, длиной первой из которой составляет долю $t$ от длины всей кривой?
Не знаю, почему, но почему-то так подумалось... Так ли это?

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

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

 Профиль  
                  
 
 Re: Равна ли доля пройденности кривой Безье параметру t?
Сообщение30.05.2016, 13:41 
Заслуженный участник


27/04/09
28128
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 
Заслуженный участник
Аватара пользователя


31/01/14
11458
Hogtown
Любую кривую можно параметризовать натуральным образом, т.е. таким что $s$ длина дуги. Вас же, как я понимаю, интересует стандартная параметризация, описанная здесь и легко видеть что ответ как правило отрицательный.

 Профиль  
                  
 
 Re: Равна ли доля пройденности кривой Безье параметру t?
Сообщение30.05.2016, 14:57 
Заслуженный участник
Аватара пользователя


23/07/08
10910
Crna Gora
Можно проверить, что $\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 


08/09/13
210
Да, действительно, затупил.

Насколько я помню длина кривой выражается как $\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 
Заслуженный участник


11/05/08
32166
fractalon в сообщении #1127331 писал(а):
Есть для этого общая удобоваримая формула?

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

 Профиль  
                  
 
 Re: Равна ли доля пройденности кривой Безье параметру t?
Сообщение30.05.2016, 22:31 


29/09/06
4552
svv в сообщении #1127188 писал(а):
Интересно, что на картинке точки гуще там, где выше кривизна. Было бы полезно для практики, если бы это было общим правилом.

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

Изображение

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

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

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

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

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

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

 Профиль  
                  
 
 Re: Равна ли доля пройденности кривой Безье параметру t?
Сообщение31.05.2016, 09:11 
Заслуженный участник
Аватара пользователя


01/03/06
13626
Москва
Red_Herring в сообщении #1127162 писал(а):
Любую кривую можно параметризовать натуральным образом, т.е. таким что $s$ длина дуги.

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

 Профиль  
                  
 
 Re: Равна ли доля пройденности кривой Безье параметру t?
Сообщение31.05.2016, 10:25 
Заслуженный участник
Аватара пользователя


31/01/14
11458
Hogtown
Brukvalub в сообщении #1127458 писал(а):
Даже НЕ спрямляемую?

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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: Geen


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group