Перейти к содержанию

Бидуга

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
Рис. 1. Примеры бидуг

Бидуга́ — гладкая плоская кривая, составленная из двух круговых дуг, меньших полной окружности. Одной из дуг может быть отрезок прямой. Бидуги были предложены [1] для геометрического моделирования (построения, аппроксимации) кривых с заданными граничными точками и касательными в них. В классе бидуг эта задача имеет целое семейство решений, и требует дополнительных условий для нахождения конкретных кривых. Таковыми могут быть задание кривизны или поворота одной из дуг, фиксированная длина кривой[2], требование минимизации скачка кривизны в точке сопряжения, и т. п.

У бидуги зависимость [math]\displaystyle{ k(s) }[/math] кривизны от длины дуги монотонна (так как состоит из двух постоянных участков), поэтому бидуга является простейшей спиралью[3].

Примеры бидуг

На рис. 1 показаны шесть бидуг [math]\displaystyle{ AJB }[/math]. Точки [math]\displaystyle{ A }[/math] и [math]\displaystyle{ B }[/math] — начальная и конечная точки кривой, [math]\displaystyle{ J }[/math] (join) — точка гладкого сопряжения двух дуг.

Примеры 1-4 иллюстрируют короткие бидуги: они не пересекают дополнение хорды до бесконечной прямой, хотя могут пересекать саму хорду (бидуга 1). Обычно именно такие кривые являются объектами аппроксимации.

Примеры 5 и 6 иллюстрируют длинные бидуги: они пересекают дополнение хорды, то есть закручиваются вокруг одной из концевых точек.

У кривых 1, 2 и 6 точка [math]\displaystyle{ J }[/math] является точкой перегиба: в ней кривизна меняет знак (- на + у кривых 1, 2 и + на - у кривой 6).

Кривые помещены в систему координат хорды [math]\displaystyle{ \overrightarrow{AB} }[/math] длины [math]\displaystyle{ \;2c=|AB| }[/math], в которой координаты начальной и конечной точек равны [math]\displaystyle{ A=(-c,0),\;\; B=(c,0) }[/math].

Ориентированные углы наклонов касательных в точках [math]\displaystyle{ A }[/math] и [math]\displaystyle{ B }[/math], измеренные относительно направления хорды [math]\displaystyle{ \overrightarrow{AB} }[/math], обозначены [math]\displaystyle{ \alpha }[/math] и [math]\displaystyle{ \beta }[/math]. Так, у бидуги 1 на рис. 1 [math]\displaystyle{ \;\alpha\gt 0,\; \beta\gt 0 }[/math], а у бидуг 2-6 — [math]\displaystyle{ \;\alpha\gt 0,\; \beta\lt 0 }[/math].

Описание семейства бидуг

Граничные касательные векторы у кривых 2-6 на рис. 1 одинаковы: [math]\displaystyle{ \alpha=100^\circ,\quad\beta=-30^\circ. }[/math] Эти кривые являются членами однопараметрического семейства бидуг с общими касательными на концах. Всё семейство показано на нижнем фрагменте рисунка 2.

Далее основные свойства семейства бидуг с общими касательными на концах приведены по материалам статьи[4]. Параметр семейства обозначен [math]\displaystyle{ p }[/math]. Обозначение бидуги в виде [math]\displaystyle{ \mathcal{B}(p) }[/math] подразумевает фиксацию констант, то есть [math]\displaystyle{ \mathcal{B}(p;\,\alpha,\beta,c) }[/math].

Рисунки 2, 3, 4 иллюстрируют такие семейства для различных пар [math]\displaystyle{ \{\alpha,\beta\}. }[/math]

Рис. 2. Семейства бидуг с общими касательными на концах (два примера)
Рис. 3. Два семейства с общими (параллельными) касательными на концах: [math]\displaystyle{ \alpha=\beta }[/math]
Рис. 4. Семейства бидуг с [math]\displaystyle{ |\alpha|=\pi }[/math] или [math]\displaystyle{ |\beta|=\pi }[/math]

Соотношения для углов и кривизн

Углы [math]\displaystyle{ \alpha }[/math] и [math]\displaystyle{ \beta }[/math] считаются определёнными в диапазоне [math]\displaystyle{ [-\pi;\,\pi] }[/math]: [math]\displaystyle{ -\pi\leqslant\alpha\leqslant\pi }[/math], [math]\displaystyle{ -\pi\leqslant\beta\leqslant\pi }[/math]. Построение бидуги возможно при

[math]\displaystyle{ \qquad 0\lt |\alpha+\beta|\lt 2\pi.\qquad(1) }[/math]

Введём обозначения

[math]\displaystyle{ \omega=\frac{\alpha+\beta}2,\quad \gamma=\frac{\alpha-\beta}2 }[/math].

Неравенства (1) означают, что [math]\displaystyle{ \;\sin\omega\not=0 }[/math].

Кривизна [math]\displaystyle{ k_1 }[/math] первой дуги [math]\displaystyle{ (AJ) }[/math] и кривизна [math]\displaystyle{ k_2 }[/math] второй дуги [math]\displaystyle{ (JB) }[/math] выражаются, как функции параметра семейства, следующими формулами:

[math]\displaystyle{ k_1(p)=\frac1c\left(-\sin\alpha-\frac{\sin\omega}p\right),\quad k_2(p)=\frac1c\left(\sin\beta+p\sin\omega\right). }[/math]

Пусть

  • [math]\displaystyle{ \theta_1 }[/math] и [math]\displaystyle{ L_1 }[/math] — поворот и длина дуги [math]\displaystyle{ AJ }[/math]:    [math]\displaystyle{ \theta_1=k_1L_1 }[/math];
  • [math]\displaystyle{ \theta_2 }[/math] и [math]\displaystyle{ L_2 }[/math] — поворот и длина дуги [math]\displaystyle{ JB }[/math]:    [math]\displaystyle{ \theta_2=k_2L_2 }[/math].

Справедливы равенства

[math]\displaystyle{ \theta_1(p)=2\arg\left(\mathrm{e}^{-\mathrm{i}\alpha} +p^{-1}{\mathrm{e}^{-\mathrm{i}\omega}}\right),\quad \theta_2(p)=2\arg\left(\mathrm{e}^{ \mathrm{i}\beta } +p\, \mathrm{e}^{\mathrm{i}\omega}\right). }[/math]

Геометрическое место точек сопряжения

Точки сопряжения [math]\displaystyle{ J }[/math] двух дуг расположены на окружности

[math]\displaystyle{ X_J(p)=\frac{c(p^2-1)}{{p^2+2p\cos\gamma+1}},\quad Y_J(p)=\frac{2cp\sin\gamma}{p^2+2p\cos\gamma+1},\quad -\infty \leqslant p \leqslant \infty.\qquad(2) }[/math]

Эта окружность выходит из точки [math]\displaystyle{ A }[/math] под углом [math]\displaystyle{ \gamma }[/math] и проходит через точку [math]\displaystyle{ B. }[/math] При [math]\displaystyle{ \gamma=0 }[/math] (то есть при [math]\displaystyle{ \alpha=\beta }[/math]) это прямая [math]\displaystyle{ AB }[/math] (рис. 3). Бидуги семейства пересекают эту окружность под постоянным углом  [math]\displaystyle{ -\omega }[/math].

Вектор касательной к бидуге в точке сопряжения есть [math]\displaystyle{ ||\cos\tau_{{}_J},\,\sin\tau_{{}_J} || }[/math], где

[math]\displaystyle{ \tau_{{}_J}(p)={-2}\operatorname{arctg}\dfrac{p\sin\frac{\alpha}2+\sin\frac{\beta}2}{p\cos\frac{\alpha}2+\cos\frac{\beta}2}. }[/math]

Бидуга с минимальным скачком кривизны в точке сопряжения, [math]\displaystyle{ \min\left|k_2(p)-k_1(p)\right|, }[/math] реализуется при [math]\displaystyle{ p=\pm1; }[/math] точка [math]\displaystyle{ J }[/math] при этом лежит на оси ординат [math]\displaystyle{ (X_J=0). }[/math]

Вырожденные бидуги

В семействе бидуг можно выделить следующие вырожденные бидуги.

  1. Бидуга [math]\displaystyle{ \mathcal{B}(0) }[/math]: при [math]\displaystyle{ p\to0 }[/math] точка сопряжения [math]\displaystyle{ J(p) }[/math] бидуги [math]\displaystyle{ AJB }[/math] стремится к точке [math]\displaystyle{ A }[/math], часть [math]\displaystyle{ AJ }[/math] исчезает, превращаясь в бесконечный импульс кривизны. Бидуга вырождается в дугу окружности, опирающуюся на хорду [math]\displaystyle{ AB }[/math] и имеющую с бидугами семейства общую касательную в конечной точке.
  2. Бидуга [math]\displaystyle{ \mathcal{B}(\infty) }[/math]: стремление [math]\displaystyle{ p\to\infty }[/math] влечёт [math]\displaystyle{ J(p)\to B }[/math], часть [math]\displaystyle{ JB }[/math] исчезает. Бидуга вырождается в дугу окружности, опирающуюся на хорду [math]\displaystyle{ AB }[/math] и имеющую с бидугами семейства общую касательную в начальной точке.
  3. Бидуга [math]\displaystyle{ \mathcal{B}(p^\ast) }[/math], где
    [math]\displaystyle{ \qquad p^\ast= \left\{ \begin{array}{lll} -\dfrac{\sin\omega}{\sin\alpha},\quad& \text{если}\; |\alpha|\geqslant|\beta|\quad(-\infty,\; \text{при}\; |\alpha|=\pi),\\ -\dfrac{\sin\beta}{\sin\omega},\quad& \text{если}\; |\alpha|\leqslant|\beta|\quad(\;0,\;\;\; \text{при}\; |\beta|=\pi), \end{array} \right. }[/math]
    представляет собой разрывную бидугу, проходящую через бесконечно удалённую точку плоскости. Всегда [math]\displaystyle{ p^\ast\leqslant 0 }[/math], а неравенства (1) исключают одновременное равенство [math]\displaystyle{ |\alpha|=|\beta|=\pi }[/math]. На рисунках 2, 3 разрывные бидуги показаны красной штрих-пунктирной линией.

С учётом этих трёх вырожденных бидуг через любую точку плоскости с выколотыми полюсами [math]\displaystyle{ A }[/math] и [math]\displaystyle{ B }[/math] проходит единственная бидуга [math]\displaystyle{ \mathcal{B}(p) }[/math]. Именно, через точку [math]\displaystyle{ (x,y) }[/math] проходит бидуга с параметром

[math]\displaystyle{ \qquad p(x,y)= \left\{ \begin{array}{ll} -\dfrac{[(x+c)^2+y^2]\sin\omega}{(c^2-x^2-y^2)\sin\alpha-2cy\cos\alpha},\quad& \text{если}\quad\omega\,C(x,y)\leqslant0,\\ -\dfrac{(c^2-x^2-y^2)\sin\beta+2cy\cos\beta}{[(x-c)^2+y^2]\sin\omega},\quad& \text{если}\quad\omega\,C(x,y)\geqslant0, \end{array} \right. }[/math]

где [math]\displaystyle{ \;C(x,y)=(c^2-x^2-y^2)\sin\gamma-2cy\cos\gamma }[/math].

Структура семейства

В семействе бидуг [math]\displaystyle{ \mathcal{B}(p;\,\alpha,\beta,c) }[/math] выделим, в зависимости от значения параметра [math]\displaystyle{ p, }[/math] следующие подсемейства невырожденных бидуг:

[math]\displaystyle{ \begin{array}{l} \mathcal{B}^{\,+}(p){:}\quad p\in(0;\infty);\\ \mathcal{B}^{\,-}_1(p){:}\quad p\in(p^\ast;0);\\ \mathcal{B}^{\,-}_2(p){:}\quad p\in(-\infty;p^\ast);\\ \mathcal{B}^{\,-}(p) = \mathcal{B}^{\,-}_1(p) \cup \mathcal{B}^{\,-}_2(p) \end{array} }[/math]

[4], Property 2, подсемейства [math]\displaystyle{ \mathcal{B}^{\,+} }[/math] и [math]\displaystyle{ \mathcal{B}^{\,-} }[/math] названы, соответственно, main subfamily и complementary subfamily).

На рисунках 2, 3, 4 бидуги, принадлежащие подсемействам [math]\displaystyle{ \color{sienna}\mathcal{B}^{\,+} }[/math], [math]\displaystyle{ \color{blue}\mathcal{B}^{\,-}_1 }[/math] и [math]\displaystyle{ \color{green}\mathcal{B}^{\,-}_2 }[/math] показаны, соответственно, коричневым, синим и зелёным цветом.

Бидуги подсемейства [math]\displaystyle{ \mathcal{B}^{\,+} }[/math] — короткие. Их кривизна либо возрастает (если [math]\displaystyle{ \omega\gt 0 }[/math]), либо убывает (если [math]\displaystyle{ \omega\lt 0 }[/math]):

[math]\displaystyle{ \sgn(k_2-k_1)=\sgn\omega=\sgn(\alpha+\beta) }[/math] (теорема В.Фогта для коротких спиралей).

Они заключены внутри линзы — области, ограниченной вырожденными бидугами [math]\displaystyle{ \mathcal{B}(0) }[/math] и [math]\displaystyle{ \mathcal{B}(\infty) }[/math] (на рисунках область линзы затемнена). Угловая ширина линзы (со знаком) равна [math]\displaystyle{ \alpha+\beta=2\omega }[/math]. ГМТ (2) есть биссектриса линзы.

Бидуги подсемейства [math]\displaystyle{ \mathcal{B}^{\,-} }[/math] имеют противоположный (по отношению к [math]\displaystyle{ \mathcal{B}^{\,+} }[/math]) характер монотонности кривизны.
Если [math]\displaystyle{ |\alpha|\not=\pi }[/math] и [math]\displaystyle{ |\beta|\not=\pi }[/math], то бидуги этого подсемейства — длинные. Разрывная бидуга [math]\displaystyle{ \color{red}\mathcal{B}(p^\ast) }[/math] отграничивает друг от друга бидуги подсемейств [math]\displaystyle{ \mathcal{B}^{\,-}_{{\color{blue}1},{\color{green}2}} }[/math].

Подсемейство [math]\displaystyle{ \mathcal{B}^{\,-}_1 }[/math] пусто, если [math]\displaystyle{ p^\ast=0 }[/math]     [math]\displaystyle{ (|\beta|=\pi). }[/math]

Подсемейство [math]\displaystyle{ \mathcal{B}^{\,-}_2 }[/math] пусто, если [math]\displaystyle{ p^\ast=-\infty }[/math] [math]\displaystyle{ (|\alpha|=\pi). }[/math]

Переопределение граничных углов в кумулятивном смысле. Интегрирование натурального уравнения бидуги даёт непрерывную (кусочно-линейную) функцию [math]\displaystyle{ \tau(s) }[/math] — угол наклона касательной к кривой. При таком определении, непрерывном, её значения могут выйти за пределы [math]\displaystyle{ \pm\pi }[/math], и значения на концах могут отличаться от [math]\displaystyle{ \alpha,\beta }[/math] на [math]\displaystyle{ \pm2\pi. }[/math] Определим, наряду с [math]\displaystyle{ \alpha,\beta }[/math], кумулятивные версии граничных углов в виде [math]\displaystyle{ \widetilde\alpha,\widetilde\beta }[/math], с учётом непрерывности [math]\displaystyle{ \tau(s). }[/math] Поправка к углу [math]\displaystyle{ \alpha }[/math] вносится, если бидуга совершает оборот вокруг точки [math]\displaystyle{ A, }[/math] то есть пересекает луч [math]\displaystyle{ \{x\lt -c,\,y=0\} }[/math]; поправка к углу [math]\displaystyle{ \beta }[/math] вносится, если бидуга совершает оборот вокруг точки [math]\displaystyle{ B }[/math] (пересекая правое дополнение хорды до бесконечной прямой):

  • в подсемействе [math]\displaystyle{ \mathcal{B}^{\,+} }[/math]:    [math]\displaystyle{ \widetilde\alpha=\alpha,\qquad\qquad\quad\widetilde\beta=\beta }[/math];
  • в подсемействе [math]\displaystyle{ \mathcal{B}^{\,-}_1 }[/math]:    [math]\displaystyle{ \widetilde\alpha=\alpha-2\pi\sgn\omega,\;\widetilde\beta=\beta }[/math];
  • в подсемействе [math]\displaystyle{ \mathcal{B}^{\,-}_2 }[/math]:    [math]\displaystyle{ \widetilde\alpha=\alpha,\qquad\qquad\quad\widetilde\beta=\beta-2\pi\sgn\omega }[/math].

Тогда полный поворот бидуги [math]\displaystyle{ \mathcal{B}(p) }[/math]  равен

[math]\displaystyle{ \theta_1(p)+\theta_2(p)=\widetilde\beta-\widetilde\alpha, }[/math]

а возрастание/убывание кривизны соответствует равенству

[math]\displaystyle{ \sgn(k_2-k_1)=\sgn(\widetilde\alpha+\widetilde\beta). }[/math]

Так, для бидуг с возрастающей кривизной, [math]\displaystyle{ k_2\gt k_1 }[/math], имеем:

[math]\displaystyle{ \widetilde\alpha\gt -\pi,\quad\widetilde\beta\gt -\pi,\quad 0\lt \widetilde\alpha+\widetilde\beta\lt 2\pi. }[/math]


Ссылки

  1. Bolton, K. M. Biarc curves (англ.) // Computer-Aided Design. — 1975. — Vol. 7. — P. 89—92. — doi:10.1016/0010-4485(75)90086-X.
  2. Сабитов И.Х., Словеснов А.В. Приближение плоских кривых круговыми дугами // Журнал вычислительной математики и математической физики. — 2010. — Т. 50, № 8. — С. 1347—1356.
  3. Курносенко А.И. Общие свойства плоских спиральных кривых // Записки научных семинаров ПОМИ. — 2009. — Т. 353. — С. 93—115. — ISSN 0373-2703. [1]
  4. 4,0 4,1 Kurnosenko, A. I. Biarcs and bilens (англ.) // Computer Aided Geometric Design. — 2013. — Vol. 30, no. 3. — P. 310—330. — doi:10.1016/j.cagd.2012.12.002. [2]

Литература

  • Nutbourne, A. W.; Martin, R. R. Differential geometry applied to curve and surface design. Vol.1: Foundations (англ.). — Ellis Horwood, 1988. — ISBN 013211822X.

См. также