Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ALL

.pdf
Скачиваний:
223
Добавлен:
12.02.2018
Размер:
15.74 Mб
Скачать

ПАРАМЕТРИЧЕСКОЕ ПРЕДСТАВЛЕНИЕ ЭЛЛИПСА

Рассматривая производные х и у:

dx = —a sinθ dθ,

• dy = b cosθ dθ,

()

получаем, что при θ, близком к 0 или , т.е. у концов,

dx 0 и dy bdθ.

Если θ близко к /2 или 3 /2, т. е. вдоль сторон, то

dx adθ и dy 0.

Т. е. около концов, где кривизна более высокая, точки чаще, а вдоль сторон, где кривизна меньше,— реже. Отношение приращений периметра концов к приращениям вдоль сторон приблизительно равно b/а. (Для окружности (b = а) оптимальное представление — равные приращения параметра или угла.)

Если задано фиксированное количество точек на эллипсе, можно, пользуясь формулами суммы углов, получить эффективный алгоритм. Координаты любой точки на эллипсе:

xi+1 = acos(θi + θ),

yi+1 = bsin(θi + θ),

где θ = 2 /(n - 1) – приращение θ, n – кол-во точек на периметре, θi - параметр для xi, yi.

По формуле суммы углов

xi+1= a (cos θi cos ∆θ — sin θi sin ∆θ),

yi+1= b (cos θi sin ∆θ + cos ∆θ sin θi).

ПАРАМЕТРИЧЕСКОЕ ПРЕДСТАВЛЕНИЕ ЭЛЛИПСА

Для θ = θi, получим рекурсивные уравнения

xi+1 = xi cos ∆θ - (a/b) yi sin ∆θ,

yi+1 = (b/a)xi sin ∆θ + yi cos ∆θ,

Так как θ, а и b - константы, требуется только умножения, сложение и вычитание.

В итоге получаем многоугольник максимальной площади, вписанный в эллипс.

Результат представлен на рис. 7.

Чтобы получить эллипс с центром не в начале координат и с главной осью, расположенной под углом к горизонтали, его поворачивают вокруг начала координат, а затем переносят.

Рис. 7 Параметрическое представление эллипса.

y*

x

β

x*

Параметрическое описание гиперболы:

Непараметрическое представление в прямоугольных координатах:

y2 x2 1 a2 b2

При этом вершина находится в точке (а, 0), оси асимптот ±b/a. Вид параметрического представления:

х = ±a secθ,

y = ±b tgθ,

где 0 θ /2, дает искомую гиперболу.

Однако для такого представления площадь вписанного многоугольника не максимальна, но близка к максимальной, и с помощью формулы суммы углов можно получить эффективный алгоритм.

Другое параметрическое представление гиперболы, дающее максимальную вписанную площадь:

х = achθ,

y = bshθ.

Чтобы ограничить область гиперболы, необходимо установить минимальное и

максимальное значения. Пусть ветвь гиперболы лежит в первом и четвертом квадранте и рассматривается часть при хmin х хmax. Тогда

где обратный гиперболический косинус получен как

Остальные границы определяются аналогично.

ПАРАМЕТРИЧЕСКОЕ ПРЕДСТАВЛЕНИЕ ПАРАБОЛЫ

Рассмотрим параболу с вершиной в центре координат и с осью симметрии — положительной полуосью х. В прямоугольных координатах непараметрическое представление параболы: у2 =

4ах.

• Параметрическое представление имеет вид

, где 0 ф /2.

Параметрическое представление с наибольшей вписанной площадью:

х = aθ2,

у = 2аθ, где 0 θ < соответствует всей верхней ветви параболы.

Парабола не замкнутая кривая - изображаемая часть должна быть ограничена минимальным и максимальным значением параметра.

Это можно сделать несколькими способами.

Если диапазон изменения координаты х ограничен, то

Если ограничен диапазон изменения у, то

Установив θmin и/или θmax, можно построить параболу в первом квадранте. В других квадрантах, ориентациях, со смещенным центром - с помощью преобразований.

Параболу можно построить также, пользуясь приращениями параметра.

Пусть на параболе задано фиксированное количество точек, т. е. приращение θ постоянно. Для θi+1 = θi + θ уравнение принимает вид

x i+1 = θi2 +2 θi θ + ( θ)2

y i+1= 2 θi +2 θ

Для θ = θi, перепишем формулы

x i+1 = x i + y i θ + ( θ)2

На рис. приведен пример параболы, сгенерированной по

y i+1= y i +2 θ

рекурсивным формулам.

ПРОЦЕДУРА ИСПОЛЬЗОВАНИЯ КОНИЧЕСКИХ СЕЧЕНИЙ

При построении плоских геометрических фигур особенно важны проблемы определения положения конического сечения и его пересечения и/или точек касания с другим коническим сечением или прямой.

Могут существовать различные решения и выбор правильного не всегда очевиден, что приводит к нелинейным расчетам.

Основная идея заключается в том, чтобы методами машинной графики –

плоским поворотом и переносом, перевести расчеты в первый квадрант в стандартной конфигурации.

Если фигура включает коническое сечение, его центр (для параболы и гиперболы — вершина) располагается в начале координат.

В общем случае неизвестные центры, вершины, точки касания и пересечения вычисляются с помощью непараметрических уравнений,

а параметрическое представление используется для изображения фигур.

Разделение расчета и построения позволяет максимально использовать преимущества обоих представлений.

ПРОЦЕДУРА ИСПОЛЬЗОВАНИЯ КОНИЧЕСКИХ СЕЧЕНИЙ

• Рассмотрим пример.

Рис. 14 Окружность,

• Одна из простейших и часто

проходящая через

используемых задач —построить

три заданные

окружность по трем точкам.

точки.

Рис. 14, где P1(x1,y1), P2(x2,y2), P3(x3,y3)

заданные точки.

Необходимо определить центр и радиус окружности.

Запишем систему из трех нелинейных уравнений с переменными h, k, координатами центра (х,у) и радиусом R:

(x

- h)2

+ (y - k)2

= R2,

(5a)

 

1

 

1

 

 

(x

- h)2

+ (y - k)2

= R2,

(5b)

 

2

 

2

 

 

3 - h)2 + (у3- k)2 = R2. (5c)

Вычитание уравнения (b) из уравнений

 

(а) и (с) устраняет нелинейность.

Аналогично из [(а) —(b)] и уравнения (6)

Собственно алгоритм решения —

вычисляется

[(а)—(b)](х3— х2) — [(с)—(b)](x1— х2),

(7)

где буквы в скобках из уравнений (5).

Уравнение, выраженное через

Полученные уравнения (6) и (7) содержат ряд

неизвестную, таково:

трудностей.

 

 

В частности, если знаменатель дроби равен

 

нулю, требуются другие методы решения.

(6)

Также необходимы условия проверки на

 

бесконечный радиус и коллинеарные точки.

ПРОЦЕДУРА ИСПОЛЬЗОВАНИЯ КОНИЧЕСКИХ СЕЧЕНИЙ

Уравнения для h и k можно упростить переносом начала координат в точку P1 (рис. 5).

• h'2 + k'2 = R2,

(7a)

(x'2-h')2 + (y'2-k)2 = R2,

(7b)

(x'3-h')2 + (y'3-k')2 = R2.

(7с)

Вычитая (а) из (b) и (с), получаем систему из двух линейных уравнений. Алгоритм решения: [(b) — (а)]х'3 — [(с) — (а)] х'2, что дает

(8)

(9)

(10)

Преобразование h', k' обратно к первоначальной системе координат дает h, k. При этом знаменатель уравнений (8) или (9) опять может обратиться в нуль, и требуются условия проверки на бесконечный радиус и коллинеарные точки. Процедура:

1.Перенести начало координат в одну из точек.

2.Повернуть оси координат, чтобы одна из оставшихся точек лежала на положительной полуоси х.

3.Проверить коллинеарность точек.

4.Найти центр и радиус окружности в перенесенной и повернутой системе координат.

5.Повернуть обратно к ориентации промежуточной системы координат.

6.Перенести начало координат в первоначальное положение и найти центр окружности в исходной системе координат.

ПРОЦЕДУРА ИСПОЛЬЗОВАНИЯ КОНИЧЕСКИХ СЕЧЕНИЙ

На рис. 5 начало координат перенесено в точку P1, а положительная полуось х"

проходит через точку Р2

Уравнения в координатах (х",у"):

h"2 + k"2=R2,

(11a)

2''- h")2 + k"2=R2,

(11Ь)

(x3''-h")2 + (y3''-k")2 =R2. (11c)

Вычтем уравнение (а) из (b)

x3''- 2x2''h" = 0,

или

h" = x2''/2. (12)

Вычтем уравнение (а) из (с) и

подставим уравнение (12):

k" = x3'' / 2y3'' (x3''- х2'') +y3'' /2

(13)

из уравнения (а) получим

• R = (h"2 + k"2)

(14)

Рис. 14 Окружность, проходящая через три заданные точки.

Уравнение (13) показывает, что при у3" = 0 значение k бесконечно, однако это случается только тогда, когда все три точки лежат на одной прямой. Проверка этого условия очень проста.

ПРОЦЕДУРА ИСПОЛЬЗОВАНИЯ КОНИЧЕСКИХ СЕЧЕНИЙ

При построении плоских геометрических фигур возможны различные решения.

Метод выбора решения - рассматривается левое, правое, ближнее, дальнее, внутреннее и внешнее решение.

Левое и правое существуют относительно направления от одной известной точки к другой;

ближнее и дальнее — относительно линии пересечения;

внутреннее и внешнее — относительно окружности.

Эти понятия справедливы как в ориентации пользователя, т. е. в любом месте пространства, так и в стандартной конфигурации в первом квадранте.

Простой пример для иллюстрации понятий левое—правое и ближнее—дальнее это определение центра и точек касания окружности известного радиуса R, касающейся двух пересекающихся прямых Р и L.

На практике задача возникает, например, при изготовлении закругленных углов. Для любого радиуса всегда существует четыре решения. Стратегия выбора такова:

1.Найти точку пересечения прямых. (Если решения нет, прямые параллельны.)

2.Перенести начало координат в точку пересечения.

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

4.Найти угол между другой линией и осью х.

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

6.Найти центр и точки касания.

7.Перевести в первоначальную систему координат.

ПРОЦЕДУРА ИСПОЛЬЗОВАНИЯ КОНИЧЕСКИХ СЕЧЕНИЙ

На рис. 15 изображен этот случай в стандартной конфигурации. Две пересекающиеся линии Р

и L заданы точками P1, Р2, L1, L2 соответственно. Для каждого возможного решения одна из координат центра (h, k) лежит на оси координат. Чтобы выбрать нужное решение, требуется указать, находится ли оно слева или справа от линии Р, если смотреть от P1 и Р2, и ближнее

 

оно или дальнее относительно линии L с той же точки зрения. На рис. 15 С1 — правое и

 

дальнее, а С3 — левое и ближнее. Центр

 

y

h = R/sinθ,

L

C2

 

 

k = 0,

1

P2

C3

где θ — острый угол между положительной осью х и Р.

C1

• Точки касания с линиями Р и L

 

 

 

xt = h — Rsinθ,

 

x

yt = ±Rcosθ.

• Таблица 7 Окружность, касающаяся двух пересекающихся прямых

P1

L2

 

 

 

 

 

 

C4

 

Ориентация

Ориентация

Центр

Точки касания

 

 

 

относительн

относительн

 

 

 

 

 

о линии Р

о линии L

 

 

 

 

 

Левая

Дальняя

h = 0

xt = ±Rcos(90 - θ) = ±Rsin(θ)

Рис. 15

 

 

 

k = R/sin(90 - θ) = = R/ cos (θ)

yt = k-Rcos(θ)

 

Окружности,

 

Левая

Ближняя

h= -R/sin(θ)

xt = h + Rsin(θ)

 

касающиеся двух

 

 

 

k = 0

yt = ±Rcos(θ)

 

пересекающихся

 

Правая

Дальняя

h= -R/sin(θ)

xt = h — Rsin(θ)

 

 

 

прямых

 

 

 

k = 0

yt = ±Rcos(θ)

 

 

 

 

 

 

 

Правая

Ближняя

h = 0

xt = ±Rcos(90 - θ) = = ±Rsm(θ)

 

 

 

 

k = R/sin(90 - θ) = = R/ cos (θ)

yt = k + Rcos(θ)

 

 

Соседние файлы в предмете Компьютерная Графика