4-9 ПРОЦЕДУРА ИСПОЛЬЗОВАНИЯ КОНИЧЕСКИХ СЕЧЕНИЙПлоские геометрические фигуры часто используются в прикладной машинной графике, например для разработки деталей или в чертежных системах. Особенно важны здесь проблемы определения положения конического сечения и его пересечения и/или точек касания с другим коническим сечением или прямой. На первый взгляд задача несложная, но для произвольно расположенных на плоскости элементов могут существовать различные решения. Выбор правильного решения не всегда очевиден, что приводит к нелинейным расчетам. Ниже приводятся методы, исключающие нелинейную математику и упрощающие линейные результаты. Кроме того, объясняется, как выбрать необходимое решение, если оно неоднозначно. Основная идея заключается в том, чтобы методами машинной графики, в частности плоским поворотом и переносом, перевести расчеты в первый квадрант в стандартной конфигурации. Если фигура включает коническое сечение, его центр (для параболы и гиперболы - вершина) располагается в начале координат. В общем случае неизвестные центры, вершины, точки касания и пересечения вычисляются с помощью непараметрических уравнений, а параметрическое представление используется для изображения фигур. Разделение расчета и построения позволяет максимально использовать преимущества обоих представлений. Рассмотрим подробный пример, чтобы лучше представить себе суть и возможности этого метода. Одна из простейших и часто используемых задач - построить окружность по трем точкам. Чертеж приведен на рис. 4-14, где
Рис. 4-14 Окружность, проходящая через три заданные точки. Вычитание уравнения (4-20b) из уравнений (4-20а) и (4-20с) устраняет нелинейность. Собственно алгоритм решения - это
Аналогично из
Уравнения (4-21) и (4-22) содержат ряд трудностей. В частности, если знаменатель дроби равен нулю, требуются другие методы решения. Также необходимы условия проверки на бесконечный радиус и коллинеарные точки. Уравнения для
Вычитая (а) из (b) и (с), получаем систему из двух линейных уравнений. Алгоритм решения:
Преобразование Перенести начало координат в одну из точек. Повернуть оси координат, чтобы одна из оставшихся точек лежала на положительной полуоси Проверить коллинеарность точек. Найти центр и радиус окружности в перенесенной и повернутой системе координат. Повернуть обратно к ориентации промежуточной системы координат. Перенести начало координат в первоначальное положение и найти центр окружности в исходной системе координат. На рис. 4-14 начало координат перенесено в точку
Вычтем уравнение (4-27а) из (4-27b)
или
Вычтем уравнение (4-27а) из (4-27с) и подставим уравнение (4-28):
а из уравнения (4-27а) получим
Уравнение (4-29) показывает, что при Провести окружность через три точки достаточно легко. Здесь не требуется выбора из множества решений, как в большинстве геометрических конструкций, включающих конические сечения. Метод выбора предложен в работе Роджерса [4-3]. Роджерс рассматривает левое, правое, ближнее, дальнее, внутреннее и внешнее решение. Левое и правое существуют относительно направления от одной известной точки к другой; ближнее и дальнее - относительно линии пересечения; внутреннее и внешнее - относительно окружности. Эти понятия справедливы как в ориентации пользователя, т. е. в любом месте пространства, так и в стандартной конфигурации в первом квадранте. Простой пример для иллюстрации понятий левое-правое и ближнее-дальнее это определение центра и точек касания окружности известного радиуса Найти точку пересечения прямых. Если решения нет, прямые параллельны. Перенести начало координат в точку пересечения. Повернуть вокруг нового центра координат, чтобы одна из линий совпала с осью Найти угол между другой линией и осью Повернуть вокруг нового начала координат, чтобы положительная полуось Найти центр и точки касания. Перевести в первоначальную систему координат. На рис. 4-15 изображен этот случай в стандартной конфигурации. Две пересекающиеся линии
где
Рис. 4-15 Окружности, касающиеся двух пересекающихся прямых. Таблица 4-7 Окружность, касающаяся двух пересекающихся линий
Полный перечень приведен в табл. 4-7. Более сложные примеры с использованием понятий внутреннее-внешнее содержатся в работе [4-3]. Возможно расширение для других конических сечений. В работе [4-4] рассматривается векторный подход к решению подобных проблем.
|