Популярные услуги

Все письменные КМ под ключ за 3 суток! (КМ-6 + КМ-7 + КМ-8 + КМ-9 + КМ-10)
КМ-6. Динамические массивы. Семинар - выполню любой вариант!
КМ-2. Разработка простейших консольных программ с использованием ООП + КМ-4. Более сложные элементы ООП - под ключ!
Любая задача на C/C++
Одно любое задание в mYsql
Сделаю ваше задание: Лабораторная работа на Pascal / Lazarus
Любой тест по базам данных максимально быстро на хорошую оценку - или верну деньги!
Любой реферат по объектно-ориентированному программированию (ООП)
Повышение уникальности твоей работе
Оба семинара по программированию под ключ! КМ-2. Разработка циклических алгоритмов + КМ-3. Функции и многофайловые программы в Си

Формирование дуги окружности

2021-03-09СтудИзба

Формирование  дуги  окружности.

Данный алгоритм обеспечивает формирование дуги окружности с центром в начале координат, расположенной в первом квадранте (Рис. 2.2‑1). Используя зеркальное отображение относительно координатной оси, можно на основании дуги, сформированной для  первого квадранта,  получить изображение окружности во всех оспальных квадрантах.


Рис. 2.21

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

Тремя точками-претендентами являются горизонтальная, диагональная и вертикальная точки (Рис. 2.2‑2), из которых выбирается та, которая ближе всего находится от расчетной окружности.

На рис.2.2-2 приведены последняя найденная точка  Тi с координатами  xi, yi , горизонтальный претендент ПH с координатами xi+1, yi , диагональный претендент ПD с координатами xi+1, yi -1 и вертикальный  претендент ПV с координатами xi, yi-1. Кроме того, на этом рисунке показано пять возможных положений расчетной окружности по отношению к последней наёденной  точке и трем претендентам.

В качестве критерия выбора одного из претендентов используется квадрат расстояния до окружности mH, mD, mv,  

Рекомендуемые материалы


Рис. 2.22

соответственно, претендентов ПH, ПD, и ПV. Значения этих квадратов расстояний, которые называются  отклонениями, рассчитываются по следующим формулам:

mH =|( xi+1)2 +yi2 –R2|;

mD =|( xi+1)2 +(yi -1) 2-R2|;

mV =|xi2 +(yi2 -1)-R2|,

где через R обозначен радиус окружности

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

Введем базовую погрешность Di  для текущей i-ой точки, определяемую через ее координаты как:

Di=( xi+1)2 +(yi -1) 2-R2.

Логика выбора одного из трех претендентов в качестве очередной точки формируемой дуги представлена на следующем рисунке(Рис. 2.2‑3).


Рис. 2.23

На рисунке  приняты следующие обозначения:

- Di- базовое отклонение;

- d1- разность расстояний горизонтального и диагонального претендентов от окружности;

- d2- разность расстояний диагонального и вертикального претендентов до окружности.

Найдем компактные аналитические выражения для расчета  d1 и d2.

Разность d1 расстояний горизонтального и диагонального претендентов до окружности  рассчитывается только в случае, когда выполняется условие:

Di    < 0 ,                                                                                                              (2.2-1)

при выполнении которого может иметь место расчетное положение окружности  1, 2, 5.              

В этом случае d1 формируется за счет  вычитания из абсолютного значения расстояния горизонтального претендента до окружности h1  абсолютного значения расстояния диагонального претендента до окружности h2, что можно записать как:

d1= h1  + h2  =|( xi+1)2 +yi2 -R2| - |( xi+1)2 +(yi -1) 2-R2|.     (2.2-2)

Для положения окружности между горизонтальным и диагональным претендентами (положение 1 или 5 на Рис. 2.2‑2) h1  положительное, а h2 – отрицательное, что позволяет перейти от выражения 2.2-2 к выражению:

d1= ( xi +1)2 + yi2 - R2 + ( xi + 1)2 +(yi -1) 2- R2.

Выразим d1 через базовую погрешность Di:

d1= (xi + 1)2 + yi2 - R2 + (xi +1)2 +(yi - 1) 2-R2  - 2yi + 1 + 2yi - 1 =

   =(xi +1)2 + yi2- 2yi + 1+ R2 + (xi + 1)2 + (yi -1) 2- R2  + 2yi - 1 =

   = 2Di + 2yi - 1,

что позволяет использовать для расчета   d1 сравнитедбно простое выражение:

  d1=2DI  +  2yi  - 1.                                                       (2.2-2)

Таким  образом, если при выполнении условия (2.2-1) расчетное положение окружности соответствует положению 1 или 5, то при отрицательном  значении   d1  в качестве очередной точки выбирается горизонтальный претендент. Заметим, что при расчетном положении окружности, соответствующем положению 2,  d1 тем более будет отрицательным, что также  обусловит выбор горизонтального претендента.

Разность d2 расстояний диагонального и вертикального  претендентов до окружности  рассчитывается только в случае, когда выполняется условие:

Di    >0 ,                                                                                                                                                       

при выполнении которого может иметь место расчетное положение окружности 5, 3, 4.              

В этом случае d2 формируется за счет  вычитания из абсолютного значения расстояния диагонального претендента до окружности h2  абсолютного значения расстояния вертикального претендента до окружности h3, что можно записать как:

d2= h2  + h3  =|( xi+1)2 +(yi - 1)2 -R2|-| xi2 +(yi -1) 2-R2|     (2.2-3)

Для положения окружности между вертикальным и диагональным претендентами (положение 3 или 5 на Рис. 2.2‑2), h2  положительное, а h3  отрицательное, что позволяет перейти от выражения (2.2-3) к выражению:

d2= h2  - h3  =( xi+1)2 +(yi -1) 2-R2 - xi2 +(yi-1)2 -R2.

Выразим d2 через базовую погрешность Di:

d2= ( xi+1)2 +(yi -1) 2-R2 - xi2 +(yi-1)2 -R2  + 2yi +1 – 2yi -1 =

 = ( xi+1)2 +(yi -1) 2-R2 - xi2 +  (yi-1)2 -R2 2xi -1 = 2Di- 2yi -1,

т.е. для расчета   d2 можно использовать выражение:

  d1=2DI -2xi -1.                                                                 (2.2-4)

Таким  образом, если при не выполнении условия (2.2-1) расчетное положение окружности соответствует положению 3 или 5, то при положительном  значении   d2  в качестве очередной точки выбирается вертикальный  претендент. Заметим, что при расчетном положении окружности, соответствующем положению 4,  d2 тем более будет положительным, что также  обусловит выбор вертикального претендента.

Начальной точкой формируемой дуги является точка с координатами xн=0, yн=R. Для этой точки базовое отклонение Dн определяется как:

Dн =( xн+1)2 +(yн -1) 2-R2 =2(1 –R).

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

Если в качестве очередной точки выбран горизонтальный претендент ПH, тогда:

xi+1= xi +1; yi+1= yi;

Di+1 = ( xi+1+1)2 +(yi+1 -1)2-R2 = xi+12+2xi+1 +1 +(yi-  -1)2-R2 =

= ( xi +1) 2+(yi -1)2-R2+2xi+1 +1 = Di +2xi+1 +1.

Если в качестве очередной точки выбран вертикальный претендент ПV, тогда:

xi+1 =  xi; yi+1= yi-1;

 Di+1 =( xi+1+1)2 +(yi+1 -1)2-R2= ( xi+1)2 +yi+12- 2yi+1 + 1-R2 =

= ( xi +1) 2+(yi -1)2-R2 -2yi+1 +1 = Di -2yi+1 +1.

Если в качестве очередной точки выбран диагональный претендент ПD, тогда:

xi+1 = xi +1; yi+1 = yi-1;

Di+1 = ( xi+1+1)2 +(yi+1 -1)2 - R2 = xi+12+2xi+1 +1 +yi+12 -  2yi+1 +1-R2=

Информация в лекции "Коллективные взаимодействия процессов" поможет Вам.

= ( xi +1) 2 + (yi -1)2 - R2 + 2xi+1+1 - 2yi+1  +1 = Di +2xi+1 - 2yi+1+2.

Учитывая выше изложенное, алгоритм формирования дуги окружности можно представит в виде граф-схемы, приведенной на следующем рисунке (Рис. 2.2‑4).

Так как при формировании очередной точки рассчитываются и используется или d1, или d2 и никогда оба вместе, для них в алгоритме используется одна и та же  переменная d.

Особенностью данного алгоритма является отсутствие длинных операций, что способствует уменьшению длительности его реализации.


Рис. 2.24

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5155
Авторов
на СтудИзбе
439
Средний доход
с одного платного файла
Обучение Подробнее