Реферат: Прикладное программирование, 1 семестр
ПРИКЛАДНОЕПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ
ЛЕКЦИЯ N1 (ВВОДНАЯ)
I. ОРГВОПРОСЫ
1. Спискигрупп
2. Расписаниезанятий
II.ПРОБЛЕМЫ СИСТЕМЫ ОБРАЗОВАНИЯ РОССИИ
Денег насистему образования у государства нет и не будет:
— проблемыобеспечения учебного процесса литературой, техни-
кой и т.д. в конечном итоге будут так илииначе переложены на
плечи студентов — они вынуждены будут сами себе покупатькниги и
даже компьютеры;
— возможнареформа системы образования с непредсказуемыми
последствиями;
— возможна(замаскированная) ликвидация бесплатного образо-
вания вообще.
III.ПРОБЛЕМЫ МИРОВОЙ КОМПЬЮТЕРНОЙ ИНДУСТРИИ
Западнаяэкономика построена по принципу совместного функци-
онирования двух систем: планирующей (для крупных фирм) ирыночной
(для мелких фирм и частных лиц). Планирующая системаявляется до-
минирующей — она диктует цены рыночной системе.
В планирующейсистеме не действуют законы рынка:
— она можетпроизвольным образом устанавливать цены на това-
ры и услуги;
— можетнавязывать потребителю любой товар («промывая мозги»
при помощи рекламы);
— кризисыперепроизводства почти не затрагивают планирующую-
щую систему — всеиздержки она может переложить на рыночную сис-
тему, которая, в конечном итоге, всегда платит за ошибкипланиру-
ющей системы.
ФирмыIntel, IBM и Microsoft явно принадлежатк планирующей
системе и пользуются всеми ее преимуществами. Однако их деятель-
ность явно вызывает кризис в мировой компьютернойиндустрии.
Архитектуракомпьютеров IBM AT и микропроцессоров Intel
принципиально устарела. Система Windows сталасверхуниверсальной,
что приводит к чрезвычайному замедлению работыкомпьютеров.
За кризис в конечном итоге расплатится рыночная система,
т.е. потребители.
IV.ПРАВИЛА РАБОТЫ С ЛИТЕРАТУРОЙ
Книги стоятдорого! Как найти хорошую книгу среди тысяч пос-
редственных?
1.Хорошая книга обычно написана от первоголица, посредс-
твенная — от третьего.
2. Признакявной халтуры — отсутствие картинок (т.е. образ-
ных моделей).
3.Следует избегать книг с названием «учебник» и книг«для
чайников». Обычно учебники пишут теоретики — люди, полностью от-
резанные от реальности и практических навыков порассматриваемому
в книге предмету. Книги «для чайников» пишутлюди, только начина-
ющие изучать описываемые ими вопросы.
Проблемы:хорошие книги обычно издаются малыми тиражами и
дорого стоят.
V. ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ
1. Что такоемодель?
Модель - это нечто, чем можно заменить физический объект в
процессе эксперимента.
2. Зачем нужнамодель?
Экспериментировать с физическим объектом может быть дорого,
неудобно или опасно.
3. Зачем нужноимитационное моделирование?
Когда задачаимеет слишком большую размерность или не подда-
ется решению в явном виде по каким-то другим причинам,используют
иммитационное моделирование.
4. Профессиональные тренажеры и компьютерныеигры.
VI. МАШИННАЯ ГРАФИКА
1.Компьютерная графика позволяет наглядно отображать ре-
зультаты моделирования.
2.Технический прогресс позволил упроститьработу с памятью
компьютеров. На аппаратном уровне оперативная,графическая и дис-
ковая память теперь фактически имеют линейнуюорганизацию.
3. Организациявидеопамяти. Рисование точки. Рисованиеста-
тической картинки. Рисование буквы. Рисование плоских движущихся
изображение.
<span Courier New";mso-fareast-font-family: Batang;mso-ansi-language:RU;mso-fareast-language:KO;mso-bidi-language:AR-SA">ПРИКЛАДНОЕПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ
ЛЕКЦИЯ N2
I. ОРГАНИЗАЦИЯ ВИДЕОПАМЯТИ
1.Восьмибитовый режим (256 цветов).
1.1.Режим с разрешением 320х200 точек.
Линейноеадресное пространство 64 кб (адреса A0000h-AFFFFh).
Используется таблица цветов — можно выбрать 256 из 2 518 0 возможных
оттенков.
1.2. Режимы сболее высоким разрешением и стандарт VESA.
Возможналибо страничная адресация через сегменты по 64 кб
(по адресу A0000h-AFFFFh), либо линейная адресация пространства
объемом до 64 Мб (по адресу E0000000h-E3FFFFFFh).
2. 24-и 32-битовый режимы (True color).
Возможналибо страничная адресация через сегменты по 64 кб
(по адресу A0000h-AFFFFh), либо линейная адресация пространства
объемом до 64 Мб (по адресу E0000000h-E3FFFFFFh).
II. АНИМАЦИЯ В ДВУМЕРНОМ
ПРОСТРАНСТВЕ И ПСЕВДОТРЕХМЕРНАЯ АНИМАЦИЯ.
Экономияпроцессорного времени (обмен «память-быстродейс-
твие»): при реализации двумерной графики обычно не нужно пере-
рассчитывать изображение для каждого объекта в каждомновом кад-
ре. Изображения всех объектов могут быть рассчитаны заранее (с
помощью профессиональных анимационных программ), записаны в фай-
лах на диске и, помере необходимости, перенесены воперативную
память компьютера. Движущиеся объекты отличаются от неподвижных
тем, что требуют по несколько картинок для описанияотдельных фаз
<span Courier New";mso-fareast-font-family: Batang;mso-ansi-language:RU;mso-fareast-language:KO;mso-bidi-language:AR-SA">— 2 -
каждого возможного движения (3-16 фаз на один типдвижения).
Аппроксимация.Влияние разрешения на качество картинки.
Лестничный эффект.
Скоростьобмена данными с кеш-памятью, оперативной памятью и
видеопамятью.
Необходимовначале накопить данные в оперативнойпамяти, и
уже затем выводить в видеопамять изображение новогокадра.
Расходпамяти. Использование симметрии приотображении пос-
тупательных и вращательных движений для экономии оперативной па-
мяти. Разделение сложных объектов на несколько независимоотобра-
жаемых элементов.
<span Courier New";mso-fareast-font-family: Batang;mso-ansi-language:RU;mso-fareast-language:KO;mso-bidi-language:AR-SA">ПРИКЛАДНОЕПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ
ЛЕКЦИЯ N3
АНИМАЦИЯ В ДВУМЕРНОМ
ПРОСТРАНСТВЕ И ПСЕВДОТРЕХМЕРНАЯ АНИМАЦИЯ.
Расходпамяти. Использование симметрии приотображении пос-
тупательных и вращательных движений для экономии оперативной па-
мяти. Разделение сложных объектов на несколько независимоотобра-
жаемых элементов.
Объекты снесколькими осями симметрии. Круг — объект с бес-
конечным числом осей симметрии. Иллюзия вращения круга.
Сколькоразных подвижных и неподвижных объектов заданного
размера (при заданном числе фаз движения) можно сохранитьв опе-
ративной памяти компьютера (заданного объема)?
Фон. Лабиринтыи псевдокарты. Прокрутка изображения.
<span Courier New";mso-fareast-font-family: Batang;mso-ansi-language:RU;mso-fareast-language:KO;mso-bidi-language:AR-SA">ПРИКЛАДНОЕПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ
ЛЕКЦИЯ N4
АНИМАЦИЯ В ДВУМЕРНОМ
ПРОСТРАНСТВЕИ ПСЕВДОТРЕХМЕРНАЯ АНИМАЦИЯ.
Необходимозадать жесткие ограничения:
— наразмерность отображаемого пространства (на число коор-
динатных осей);
— на размеротображаемого пространства (площадь и глубину);
— на сложностьфона;
— на число и сложность формы неподвижныхобъектов;
— на число исложность формы подвижных объектов, число типов
движений и число фаз движений;
— на масштабируемость объектов (на сколькодопустимо увели-
чение и уменьшение объекта);
— нанаправление взгляда и угол обзора.
Направлениевзгляда: сверху, сбоку, сверху-сбоку.
Координатныеоси. Двумерное, псевдотрехмерное и трехмерное
пространство.
Ориентацияосей в двумерном пространстве (относительно экра-
на монитора).
┌─────── x
│
│
│
y
Ориентацияосей в трехмерном пространстве (оси x и y — как в
двумерном, ось z направлена от оператора вглубь экрана).
.
— 2 -
Соотношениемежду сферическими и прямоугольнымикоордината-
ми:
x = 7r 0 sin 7f 0cos 7Q
y = 7r 0 sin 7f 0sin 7Q
z = 7r 0 cos 7f
Алгоритмхудожника. Примитивный вариант z-буферизации в
псевдотрехмерной графике.
<span Courier New";mso-fareast-font-family: Batang;mso-ansi-language:RU;mso-fareast-language:KO;mso-bidi-language:AR-SA">ПРИКЛАДНОЕПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ
ЛЕКЦИЯ N5
ЗАДАНИЕ НА ЗАЧЕТ
Задание:написать программу, выполняющую моделирование функ-
ционирования какой-либо системы и отображающую результатымодели-
рования на экране монитора в графическом виде.
Каждыйстудент может выбрать себе задание (типмоделируемой
системы) самостоятельно. Программа может иметь форму игры, но
обязательно должна моделировать какую-то реальную систему или
процесс.
ОГРАНИЧЕНИЯ:
1. Программадолжна работать под операционной системой DOS.
Нельзя использовать возможности Windows.
2. Языкипрограммирования: С, Паскаль или Ассемблер. Объект-
но-ориентированные возможности языков использоватьнельзя.
3. Ограничениена графические режимы: можно использовать
только режим 256 цветов (1 байт видеопамяти на каждую точку) с
разрешением 320х200 точек или (в случае крайней необходимости)
640х400 точек.
4. Нельзя использовать никакие графические библиотеки — вы-
вод информации должен производиться напрямую ввидеопамять.
5. Ограничениепо быстродействию: программа должна сохранять
работоспособность на медленных 486-х компьютерах.
6. Ограничениепо оперативной памяти - нельзя использовать
более 500 кб основной памяти и более 1 Мб расширенной.
<span Courier New";mso-fareast-font-family: Batang;mso-ansi-language:RU;mso-fareast-language:KO;mso-bidi-language:AR-SA">ПРИКЛАДНОЕПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ
ЛЕКЦИЯ N6
ПЕРЕНОС И ПОВОРОТ ИЗОБРАЖЕНИЯ
2Перенос и поворот в двумерном пространстве
Перенос точкиP(x,y) в точку P(x',y'):
x' = x + 7D 0x
y' = y + 7D 0y
Поворот вокруг центра координат (точка P(x,y) переходитв
точкуP(x',y')):
x' = x cos 7f 0 — y sin 7f
y' = x sin 7f 0 + y cos 7f
Вычисления в матричной форме
Перенос:
┌ ┐
│1 0 │
[x' y'] = [x y 1] │ 0 1│
│ 7D 0x 7D 0y │
└ ┘
Удобнееработать с квадратной матрицей переноса (которая мо-
жет быть получена введением фиктивной переменной):
┌ ┐
│1 0 0 │
[x' y' 1] = [x y 1] │ 0 1 0│
│ 7D 0x 7D 0y 1 │
└ ┘
Такуюзапись принято называть записью всистеме «однородных
координат».
Поворот вокругцентра координат на угол 7f 0:
┌ ┐
│ cos 7f 0 sin 7f 0 │
[x'y'] = [x y] │ │
│ -sin 7f 0 cos 7f 0│
└ ┘
.
— 2 -
┌ ┐
│ cos 7f 0 sin 7f 0 0 │
[x' y' 1] = [x y 1] │ -sin 7f 0 cos 7f 0 0 │
│ 0 0 1 │
└ ┘
Поворотвокруг произвольной точки с координатами(x 40 0,y 40 0) на
угол 7f 0 может быть представлен формулой:
[x' y' 1] = [x y 1] R
где через Rобозначена матрица поворота размером 3x3.
Такой поворотсостоит из трех операций:
1.Преобразование для переноса точки (x 40 0,y 40 0) вначало коор-
динат О:
┌ ┐
│ 1 0 0 │
T' = │ 0 1 0│
│-x 40 0 -y 40 0 1│
└ ┘
2. Поворотвокруг начала координат на угол 7f 0:
┌ ┐
│ cos 7f 0 sin 7f 0 0 │
R 40 0 = │ -sin 7f 0 cos 7f 0 0 │
│ 0 0 1 │
└ ┘
3. Перенос изначала координат в точку (x 40 0,y 40 0):
┌ ┐
│ 1 0 0│
T = │ 0 1 0 │
│x 40 0 y 40 0 1 │
└ ┘
Матрица R =T'R 40 0T:
┌ ┐
│ cos 7f 0 sin 7f 0 0 │
R = │ -sin 7f 0 cos 7f 0 0 │
│ c 41 0 c 42 0 1 │
└ ┘
где
c 41 0 = x 40 0 — x 40 0 cos 7f 0 + y 40 0 sin 7f
c 42 0 = y 40 0- x 40 0 sin 7f 0 — y 40 0 cos 7f
.
— 3 -
2Перенос и поворот в трехмерном пространстве
Перенос точкиP(x,y,z) в точку P'(x',y',z'):
x' = x + 7D 0x
y' = y + 7D 0y
z' = z + 7D 0z
В матричнойформе:
[x' y' z' 1] = [x y z 1] T
┌ ┐
│ 1 0 0 0 │
T = │ 0 1 0 0 │
│ 0 0 1 0 │
│ 7D 0x 7D 0y 7D 0z 1 │
└ ┘
Поворотвокругосинаугол 7a 0:
┌ ┐
│ 1 0 0 │
R 4x 0 =│ 0 cos 7a 0 sin 7a 0│
│ 0 -sin 7a 0 cos 7a 0│
└ ┘
┌ ┐
│ cos 7a 0 0 -sin 7a 0│
R 4y 0 =│ 0 1 0 │
│ sin 7a 0 0 cos 7a 0│
└ ┘
┌ ┐
│ cos 7a 0 sin 7a 0 0 │
R 4z 0 = │-sin 7a 0 cos 7a 0 0 │
│ 0 0 1 │
└ ┘
Поворот наугол 7a 0 вокруг произвольной оси, заданной вектором
v, может быть представлен формулой:
[x' y' z' 1] = [x y z 1] R
где через R обозначена матрица обобщенного поворотаразмером 4x4.
.
— 4 -
Такой поворотсостоит из трех операций:
1.Преобразование для переноса начальной точки вектора
v(x 40 0,y 40 0,z 40 0) вначало координат О:
┌ ┐
│ 1 0 0 0 │
T' = │ 0 1 0 0 │
│ 0 0 1 0 │
│ -x 40 0 -y 40 0 -z 40 0 1 │
└ ┘
2. Поворотвокруг начала координат выполняется в полярных
координатах (как комбинация из нескольких поворотов):
┌ ┐
│ cos 7Q 0 -sin 7Q 0 0 │
R 4z 5-1 0 = │ sin 7Q 0 cos 7Q 0 0 │
│ 0 0 1 │
└ ┘
┌ ┐
│ cos 7f 0 0 sin 7f 0│
R 4y 5-1 0 = │ 0 1 0 │
│ -sin 7f 0 0 cos 7f 0│
└ ┘
┌ ┐
│ cos 7a 0 sin 7a 0 0 │
R 4v 0 = │ -sin 7a 0 cos 7a 0 0 │
│ 0 0 1 │
└ ┘
┌ ┐
│ cos 7f 0 0 -sin 7f 0│
R 4y 0 = │ 0 1 0 │
│ sin 7f 0 0 cos 7f 0│
└ ┘
┌ ┐
│ cos 7Q 0 sin 7Q 0 0 │
R 4z 0 = │ -sin 7Q 0 cos 7Q 0 0 │
│ 0 0 1 │
└ ┘
В результатеполучим матрицу:
┌ ┐
│r 411 0 r 412 0 r 413 0 │
R 5* 0 =R 4z 5-1 0R 4y 5-1 0R 4v 0R 4y 0R 4z 0= │ r 421 0 r 422 0 r 423 0 │
│r 431 0 r 432 0 r 433 0 │
└ ┘
.
— 5 -
Расширим этуматрицу до размера 4х4:
┌ ┐
│ r 411 0 r 412 0 r 413 0 0 │
R 40 0 = │ r 421 0 r 422 0r 423 0 0 │
│ r 431 0 r 432 0 r 433 0 0 │
│ 0 0 0 1 │
└ ┘
3. Перенос изначала координат в точку (x 40 0,y 40 0,z 40 0)):
┌ ┐
│ 1 0 0 0 │
T = │ 0 1 0 0 │
│ 0 0 1 0 │
│ x 40 0 y 40 0 z 40 0 1 │
└ ┘
Получаем матрицу обобщенного поворота:
R =T'R 40 0T
Следуетотметить, что в компьютерной графике одновременно
используются оба способа описания пространства: в прямоугольных
координатах рассчитывают перемещения, а в сферических — повороты.
<span Courier New";mso-fareast-font-family: Batang;mso-ansi-language:RU;mso-fareast-language:KO;mso-bidi-language:AR-SA">ПРИКЛАДНОЕПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ
ЛЕКЦИЯ N7
РИСОВАНИЕ ЛИНИЙ, ОКРУЖНОСТЕЙ И ЭЛЛИПСОВ.
ЗАЧЕМ ЭТО НУЖНО ЗНАТЬ?
Основнойнедостаток всех универсальных графических библиотек
— медленная работа (универсальная система всегдазначительно ус-
тупает по производительности специализированной).
Использованиечужой библиотеки всегда сопровождается серьез-
ным риском:
— программыбиблиотеки могут содержать ошибки, которые вы не
можете исправить (исходные коды программ обычно непоставляются);
— возможны ошибкив документации на библиотеку (либо просто
неточное описание ее функционирования);
— впродажу, как правило, поступают уже сильно устаревшие
библиотеки — фирмы-разработчики не нуждаются в конкуренции с ва-
шей стороны. Покупка чужой технологии всегда приводит к техноло-
гическому отставанию — вы сами себя изгоняете с рынка за свои же
собственные деньги;
— разработчик библиотеки в любой момент может перестать ее
развивать;
— вкомпьютерной промышленности периодически происходят кри-
зисы, уничтожающие целые классы («ряды»)морально устаревших вы-
числительных машин. Заменяющие их принципиально новыесистемы в
течение нескольких лет могут не иметь необходимого программного
обеспечения.
Проектировщикисистем управления постоянно имеют дело с но-
вейшей аппаратурой, и часто вынуждены сами создавать для нее
программное обеспечение.
.
— 2 -
РИСОВАНИЕ ЛИНИИ
(алгоритм Брезенхема)
«Несмотряна всю сложность программирования графики, в осно-
ве любой графической функции лежит несколько на удивлениепростых
функций, называемых графическими примитивами. Такими примитивами
являются прорисовка точек, линий, окружностей, а такжезаполнение
областей и перемещение битовых образов. Многие годы вграфическое
оборудование встраивался тот или иной набор графических примити-
вов. Такой примитив, как рисование линии, особенно широкоисполь-
зуется конструкторскими программами, а также программами автома-
тизированной разработки.
У каждойфункции рисования линии есть две важнейшие характе-
ристики. Во-первых, функция должна хорошо приближать то, что она
рисует, к реальной линии. Разрешение компьютера ограничено, поэ-
тому программа может приближать реальную линию толькосериями то-
чек, устанавливаемых в заданном направлении. Этапоследователь-
ность точек должна создавать хороший зрительный эффект — то, что
нарисовано, должно быть похоже на линию. Во-вторых, чтобы быть
полезной, функция рисования линии должна работать быстро. Ми-
ни-компьютеры и большие машины имеют аппаратно встроенныефункции
рисования линии. Уперсональных же компьютеров аппаратной под-
держки рисования линии нет.»
Майкл Абраш
Появлениеаппаратной поддержки графики в ПЭВМ (графические
ускорители, команды MMX).
Приближениереальной линии набором пикселей. Лестничный эф-
фект.
АлгоритмБрезенхема:
Алгоритм идетпо оси, проекция линии на которую больше(ос-
новной оси), ипроверяет соседние точки по другой оси, выбирая
ту, что ближе к реальной линии. Текущая ошибка отклоненияисполь-
зуется как критерий того, что пора менять неосновную координату,
чтобы лучше приблизить реальную линию.
Для того,чтобы можно было работать только с целыми числами,
избегая вычислений с плавающей запятой, достаточнопромасштабиро-
вать картинку.
Благодаряиспользованию только целочисленнойарифметики ал-
горитм Брезенхема является одним из самых простых ибыстрых алго-
ритмов.
<span Courier New";mso-fareast-font-family: Batang;mso-ansi-language:RU;mso-fareast-language:KO;mso-bidi-language:AR-SA">ПРИКЛАДНОЕПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ
ЛЕКЦИЯ N8
РИСОВАНИЕ ОКРУЖНОСТЕЙ
(алгоритм Харденбурга)
Уравнениеокружности:
R 52 0 = X 52 0 +Y 52
С точки зренияпрограммирования достаточно рассчитать 1/8
часть окружности - остальные точки могут быть получены за счет
симметрии.
Обычноначинают рисовать из точки, гдекоордината по основ-
ной оси (по которой приращение больше) равна 0, а понеосновной -
радиусу. Каждая следующая точка получается из формулы:
7|\\\\\\\\
MinorAxis = 7? 0R 52 0 — MajorAxis 52
гдеR — радиус,
MinorAxis — координата понеосновной оси,
MajorAxis — координата по основной оси.
Недостаток — нужно вычислять квадратный корень и использо-
вать арифметику с плавающей запятой. Желательно, однако,работать
только с целочисленной арифметикой.
Вместовычисления такого выражения для каждой точки доста-
точно отслеживать текущие значенияMinorAxis 52 0 и R 52 0 — MajorAxis 52
и декрементируйте один пиксель по неосновной оси, как только
MinorAxis 52 0 становится меньшеR 52 0 — MajorAxis 52 0.
Ошибканакопления — не целое число. Однако никаких проблем
это не создает. Координату по неосновной оси нужноизменять, ког-
да
(Y — 0.5) 52 0 > R 52 0 — X 52
<span Courier New";mso-fareast-font-family: Batang;mso-ansi-language:RU;mso-fareast-language:KO;mso-bidi-language:AR-SA">— 2 -
Однако:
(Y — 0.5) 52 0 = Y 52 0 — Y + 0.25
Разность Y 52 0 — Y вычисляется в целых числах, а 0.25 можно
просто игнорировать, потому что разность R 52 0 — X 52 0, которую мы бу-
дем сравнивать с ошибкой накопления по Y, всегда целоечисло. Ес-
ли R 52 0 — X 52 0 равенY 52 0 — Y, то на самом делеR 52 0 — X 52 0 меньше ошибки.
Следовательно, неосновную координату нужно менять, когда
Y 52 0 — Y >= R 52 0 — X 52 0.
Кроме того,при необходимости можно ускорить вычисления, за-
менив операцию взведения в квадрат (умножения) на сдвиг,сложение
и инкремент (для 486-х и более мощных процессоров такаязамена не
имеетсмысла):
(a + 1) 52 0 =a 52 0 + 2a + 1.
<span Courier New";mso-fareast-font-family: Batang;mso-ansi-language:RU;mso-fareast-language:KO;mso-bidi-language:AR-SA">ПРИКЛАДНОЕПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ
ЛЕКЦИЯ N9
2РИСОВАНИЕ ЭЛЛИПСОВ
Современныемикропроцессоры, используемые в персональных
ЭВМ, включают в себя быстродействующие блоки для вычислений с
плавающей запятой. Это позволяет рассчитывать любыеэллипсы.
Однако ненаклонные эллипсы можно достаточно быстро прорисо-
вывать, используя только целочисленную арифметику. Ненаклонный
эллипс описывается уравнением:
x 52 0 y 52
─── + ─── = 1.
A 52 0 B 52
следовательно
7|\\\\
7/ 0 B 52 0x 52
y = 7/ 0B 52 0 — ──── ,
7? 0 A 52
где полученноезначение Y необходимо округлить до ближайшего
целого.
Так как эллипсимеет две оси симметрии, то вычисления доста-
точно выполнить для оного из четырех квадрантов. Сначаларисуется
дуга, где основнойосью является X, затем — дуга, где основной
осью является Y. Затем полученные точки отображаются на три ос-
тальных октанта.
Точка, вкоторой ось перестает быть основной, вычисляется по
формуле
B 52 0x 52 0 = A 52 0y 52&n