Как и в п.1, представим условие пересечения в виде
, где А=
Обозначим подматрицы А следующим образом:
; .
Также рассмотрим матрицы
; .
Возможны следующие ситуации:
I. . Прямые не параллельны.
1) Если , то рассчитываем значения параметров в возможной точке пересечения по формуле:
.
Подставляем полученные значения параметров в условие . Рассматриваем варианты:
а) условие выполнено. Следовательно,L1(u) иL2(v) пересе-каются при значениях , .
б) условие не выполнено. Тогда прямые скрещиваются.
2) Если , то рассчитываем
и аналогично проверяем условие .
II. . Возможны 2 варианта :
а) . В этом случае имеет место наложе-ние прямых, т.е. они совпадают.
б) . Прямые параллельны и не име-ют общих точек.
3.Определение пересечения (касания) дуги окружности С с прямой L (отрезком )на плоскости.
Задана дуга окружности С:
.
(в случае полной окружности )
и прямаяL, проходящая через точки , :
L(u) =P1+ (P2 -P1 ) u ; (в случае отрезка 0 u 1).
Необходимо выяснить, пересекаются (касаются) ли эти примитивы, если да – то найти координаты точки пере-сечения (касания) и указать соответствующие значения па-раметров и u .
Вначале проверяем расстояние от центра P0 дуги С до прямойL. Для этого вначале определим точку Pn , в которую опускается перпендикуляр из наL. Так как Pn L, то ей соответствует некоторое значение параметра прямой un, для которого справедливо: .
Из условия перпендикулярности отрезков и , записанного как равенство нулю скалярного произведения: ,
получим: .
По находим и длину перпендикуляра . Затем проверяем: .
Если условие не выполняется, то пересечение заведо-мо невозможно и ответ отрицательный. Если условие вы-полняется, то возможны две ситуации:
1. ( Рис.1.11). Определим две возможных точки пересечения L с окружностью и . Для этого вначале рассчитываем расстояния а от точек и до основания перпендикуляра :
Рис. 1.11
Затем, используя единичный направляющий вектор t прямойL, находим координаты возможных точeк пересе-чения: ; .
Углы и ,соответствующие и , находим по (1.8 б, в). Если , то прямая L пересекает дугу C в точ-ке . Аналогично проверяем для .
В том случае еслиL - отрезок (луч), то дополнительно определяются значения параметра u в точках и :
; ,
а также проверяются условия:
, .
Если условия выполнены, то пересечение есть, иначе – нет.
2. . Возможно касание в точке (Рис.1.12).
Рис. 1.12
По формулам (1.8 б,в) определяем п. Если0 п 1, то касание с дугой есть. Иначе – нет.
Для отрезка (луча) дополнительно проверяется усло-вие 0 u п 1 (0 u п < + ).
4.Расчёт пересечения (касания) дуг окружностей , .
Заданы дуги окружностей
;
.
Необходимо выяснить наличие пересечения (касания) и . Если оно есть, то указать координаты точек пере-сечения (касания) и соответствующие им значения пара-метров и .
Находим расстояние между центрами окружнос-тей и и проверяем выполнение условия 12 r1 + r2.
Если условие не выполнено, то пересечения заведомо нет, так как расстояние между центрами окружностей боль-ше суммы их радиусов.
Если условие выполнено, то есть 2 возможности.
1. 12 = r1 + r2. Касание окружностей, содержащих дуги и (Рис 1.13). Рассматриваем вектор и определяем по
Рис. 1.13
(1.8.б, в) угол его наклона относительно оси х. Затем рассчитываем угловое положение точки касания для второй окружности: (mod 2).
Если и , то касание есть. Декартовы координаты точки касания:
.
Если хотя бы одно из условий не выполняется, то каса-ния нет.
2. 12 r1+r2 . Пересечение окружностей, содержащих и
Рис. 1.14
(Рис 1.14). Как и в п.1, находим угол .Угловое отклонение точек пересечения на первой окружности от угла находим по теореме косинусов:
.
Угловое положение точек пересечения и на окружности, содержащей , задается углами
,
.
Условие принадлежности точек и дуге имеет вид:
, .
Проверка принадлежности точек и дуге производится аналогично:
Точка является точкой пересечения дуг, если для нее одновременно выполняются оба условия.
5.Определение пересечения ( параллельности, наложения ) пространственной прямой ( луча, отрезка ) , проходя-щей через точки Р1 , Р2 , и плоскости (,w) (пространст-венного треугольника),проходящих через точки Р3 , Р4 , Р5 .
Уравнение прямой:
;
Уравнение плоскости:
; , .
В точке пересечения . Заменяя век-торные разности (Р2 –Р1), (Р4 –Р3), (Р5 –Р3) соответ-ствующими единичными направляющими векторами , , :
=(Р2 –Р1)/Р2 –Р1,
= (Р4 –Р3)/Р4 –Р3,
= (Р5 –Р3)/Р5 –Р3,
и вводя новые параметры:
; ; ,
условие пересечения можно представить в виде:
, где
Возможны следующие случаи:
det A=0, P3 -P3=0 - наложение прямой на плоскость .
det A=0, P3 -P30 - прямая параллельна , точек пересечения нет.
det A 0 - прямая пересекает . Значения параметров в точке пересечения
.
В том случае, если примитив L(u) является отрезком (лучом), то дополнительно проверяется условие на параметр un: 0 un 1 ( 0 un < +).
Если (,w) является пространственным треугольни-ком, то необходимо проверить дополнительные условия на параметры v n и w n:
0 vn , w n 1,
0 vn+ wn 1.
6. Расчёт площади плоских многоугольников.
Обычно в машинной графике плоский n - угольник за-дают при помощи декартовых координат его вершин (хi , уi),(i = 1,…,n). Наиболее просто площадь S многоугольника рассчитывается по формуле
- Введение
- I. Основные виды геометрических объектов в машинной графике
- 1.1. Основные аналитические способы задания кривых
- 3. Параметрический способ задания. В качестве независимой переменной выбирается некоторый параметр t. Все координаты точек на кривой выражаются через него:
- 1.2. Виды кривых
- 1.3. Основные способы задания прямых
- 1.4. Способы задания окружностей и их дуг
- Углы 0 , 1 находим, как и в п. 2 , по формулам (1.8 б, в).
- 1.5. Основные аналитические способы задания поверхностей
- 1.6. Виды поверхностей
- П ример 2 .Уравнение конуса второй степени
- 1.7. Основные способы задания плоскостей
- 1.8. Аналитические способы задания пространственных тел
- 1.9. Основные операции с графическими примитивами
- Как и в п.1, представим условие пересечения в виде
- 1.10. Параметрические кривые и их построение в векторном виде