Разлика между DDA и алгоритъма на Bresenham

Разлика между DDA и алгоритъма на Bresenham



Цифровият диференциален алгоритъм (DDA) и алгоритъмът на Bresenhams’s са алгоритмите за изчертаване на цифрови линии и се използват в компютърната графика за рисуване на картини. Преди това използвахме аналитични анализатори за изчисляване на пикселите и по този начин бяха възможни чертежи на линии. Но тези аналитичните методи не са толкова точни, колкото цифровите методи, че с използването на тези цифрови алгоритми сега и както във всяко поле, ние изобретяваме и по-качествени методи в компютърната графика. Изобретяването на тези алгоритми е идеален пример. Преди да продължим, нека разгледаме концепцията зад тези алгоритми. Въпреки че изглежда извън обхвата на нашата дискусия, от съществено значение е да се посочат основните разлики между двете. Ако наистина сте запознати с алгоритмите, можете да преминете към действителните разлики, намиращи се в края на тази страница.

Какво е цифров диференциален алгоритъм (DDA)?

DDA се използва най-вече за чертане на линии в компютърната графика и използва реални стойности, докато прогнозира стойностите на следващите пиксели. Нека приемем началната стойност на пиксела като (X0, Y0) (X0, Y0), а целевият пиксел като (X1, Y1) (X1, Y1). Ще научим как да изчисляваме стойностите на пикселите за местоназначение от известната стойност на пикселите (X0, Y0) (X0, Y0), както е показано по-долу.



  • Как да изчислим стойността на точката на местоназначение с помощта на DDA?

Етап 1:Тук имаме вход (X0, Y0) (X0, Y0) и трябва да идентифицираме дали линията върви успоредно на оста x или оста y. За да намерим това, нека сега изчислим разликата между началната и целевата стойност на пикселите.



dx = X1 - X0

dy = Y1 - Y0

Стъпка 2:Сега идентифицирахме разликата и трябва да начертаем линията по оста x, ако ‘dx’ е нула, в противен случай трябва да нарисуваме линията, успоредна на оста y. Ето действителното изчисление от гледна точка на компютърния език.



ако (абсолютен (dx)> абсолютен (dy))

Стъпки = абсолютни (dx);

друго



Стъпки = абсолютни (dy);

Стъпка 3:Сега е време да се идентифицират действителните координати „x“ или стойностите на пикселите „y“, за да се начертае линията.

X стъпка = dx / (плаващ) стъпки;

Y инкремент = dy / (float) стъпки;

Стъпка 4:Това трябва да се изчисли, докато достигнем пиксела на местоназначението. DDA алгоритъм закръглява стойността на пиксела до най-близката целочислена стойност, докато прави изчислението. Тук е код пример за това, което обсъдихме сега.

За (int v = 0; v< Steps; v++)

{

x = x + X нарастване;

y = y + Y нарастване;

putpixel (Round (x), Round (y));

}

Приключихме с чертането на линията с помощта на DDA и нека преминем към Bresenham’s сега!

Разлика между DDA и алгоритъм-1 на Bresenham

Какво представлява алгоритъмът на Bresenham’s?

Това също е алгоритъм за дигитално чертане на линии и е изобретен от Брезенхам през 1962 г. и това е защо то има има същото име. Този алгоритъм е по-точен и използва изваждане и добавяне за изчисляване на стойността на пиксела, докато чертае линията. Точността на алгоритъма на Bresenham е надеждна, докато чертаете и криви и кръгове. Нека разгледаме как работи този алгоритъм.

Етап 1:Алгоритмите на Bresenham приемат началната пикселна координата като (xa + 1, ида се).

Стъпка 2:Той автоматично изчислява стойността на следващия пиксел като (xa + 1, иa + 1), Тук ‘a’ е нарастващата стойност и алгоритъмът я изчислява чрез добавяне или изваждане на уравненията, които е формирал.

Този алгоритъм изчислява точни стойности без закръгляване и изглежда по-лесно!

  • Числен пример за алгоритъма на Брезенхам:

Нека сега разгледаме точките (0,0) и (-8, -4) и да начертаем линия между тези точки, използвайки алгоритъма на Bresenham.

Дадени данни, (x1, y1) = (0, 0) и (x2, y2) = (-8, -4).

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

∆x = x2-x1 = -8-0 = 8

Следователно нарастващата стойност за x = ∆x / x2 = 8 / -8 = -1.

∆y = y2-y1 = -4-0 = 4

Следователно нарастващата стойност за y = ∆y / y2 = 4 / -4 = -1.

Решение променлива = e = 2 * (∆y) - (∆x)

Следователно e = 2 * (4) - (8) = 8-8 = 0

С горното изчисление, нека изведем резултатите от стойностите. Стойностите на y-координата се коригират въз основа на променлива за решение и ние просто игнорираме изчисляването му тук.

Пиксел х и Променлива за решение
(0,0) 0 0 0
(-1,0) -1 0 Стойност
(-2, -1) -2 -1 0
(-3, -1) -3 -1 Стойност
(-4, -2) -4 -2 0
(-5, -2) -5 -2 Стойност
(-6, -3) -6 -3 0
(-7, -3) -7 -3 Стойност
(-8, -4) -8 -4 0

Разлики между DDA и алгоритъма на Bresenham:

  • Аритметично изчисление:

DDA използва реални стойности в своите изчисления с използването на плаващи точки. Следващите стойности на пиксели или точки се определят с диференциални уравнения

X стъпка = dx / (плаващи) стъпки

Y стъпка = стъпка dy / (float)

Тук не се използват фиксирани константи, но в алгоритъма на Bresenham фиксираните точки се използват в аритметични изчисления. Алгоритъмът на Bresenham използва Integer аритметика, за разлика от DDA.

  • Вид на използваната операция:

DDA решава диференциалните уравнения с операции за умножение и деление. Тук можете да забележите същото, стъпки X инкремент = dx / (плаващ). Алгоритъмът на Bresenham използва операции за събиране и изваждане и можете да забележите същото тук в следващото уравнение за изчисляване на стойността на пиксела (xa + 1, иa + 1). Аритметиката е по-проста в Bresenham’s в сравнение с DDA.

  • Ефективност:

Както обсъждахме по-рано, алгоритъмът на Bresenham използва по-проста аритметика от DDA и води до ефективни резултати.

  • Скорост:Тъй като DDA използва цели числа с плаваща запетая, заедно с операциите за умножение и деление, той е сравнително по-бавен, докато алгоритъмът на Bresenham използва само целочислена аритметика заедно с добавянията и изважданията. Това значително намалява времето, необходимо за неговите изчисления, а оттам и по-бързо от DDA.
  • Точност:Въпреки че DDA използва стойности с плаваща запетая, точността на DDA не е толкова по-добра, колкото Bresenham. Различни фактори влияят на тази концепция и следователно Bresenham’s е по-точен от DDA.
  • Закръгляване:Просто погледнете изчислението на DDA тук.

X стъпка = dx / (плаващи) стъпки

Можете да забележите „float“ и следователно той не закръглява стойностите, докато алгоритъмът на Bresenham закръглява стойностите до най-близкото цяло число. Следователно използваните стойности са по-прости в алгоритъма на Bresenham.

  • Какво рисува?

DDA може да рисува кръгове и криви, освен чертаене на линии. Алгоритъмът на Bresenham също е в състояние да изготви всички споменати по-горе и неговата точност е наистина по-висока от тази на DDA. По същия начин алгоритъмът на Bresenham може да излезе с ефективни криви от тази, създадена от DDA. И двата алгоритма могат също да нарисуват триъгълници и полигони.

  • Кое е скъпо?

Тъй като DDA включва и закръгляване, това е по-скъпо от използването на алгоритъма на Bresenham.

  • Кой е оптимизиран алгоритъм?

От нашата дискусия по-горе става много ясно, че алгоритъмът на Bresenham е оптимизиран по отношение на скоростта, цената и използването на операциите.

Нека разгледаме разликите в таблична форма.

S.No Разлики в Цифров диференциален алгоритъм Bresenham’s Algorithm
1. Защо името? Само защото това беше цифровото изпълнение на уравненията, то получи името. Изобретен е от Й. Е. Брезенхам през 1962 г. и оттам идва и името.
2. Изчисления Включва по-строги изчисления. Използваните изчисления са наистина по-прости.
3. Видове използвани операции Той използва умножения и деления. Примерните диференциални уравнения, използвани тук, са стъпки Xincrement = dx / (float),

Yincrement = dy / (float) стъпки.

Той използва добавяния и изваждания. Примерното изчисление тук може да бъде означено като (xa + 1, иa + 1).
Четири. Аритметични изчислителни стойности Той използва стойности с плаваща запетая. Той използва само целочислените стойности.
5. Ефективност Сложната аритметика води до по-малка ефективност. По-простата аритметика води до по-голяма ефективност.
6. Скорост Използването на операции за умножение и разделяне отнема много време за изчислителните процеси. Използването на операции за събиране и изваждане отнема по-малко време от DDA.
7. Точност Точността е по-малка. По-точно е.
8. Закръгляване Той използва реални стойности и никога не закръглява стойностите. Той закръглява стойностите до най-близките цели числа.
9. Възможност за чертане Той може да чертае линии, кръгове и криви, но с по-малка точност. С този алгоритъм можем дори да нарисуваме триъгълници и многоъгълници. Той е в състояние да рисува линии, кръгове и криви с по-голяма ефективност. С този алгоритъм са възможни и триъгълници и многоъгълници.
10. Разходи за изчисления Скъпо е, тъй като включва и закръгляване. Използването на алгоритъма на Bresenham е по-евтино от DDA.
единадесет. Оптимизиран алгоритъм Това не е оптимизиран алгоритъм Това е оптимизиран алгоритъм.

Справихме се с всяка възможна разлика между DDA и алгоритъма на Bresenham. Може дори да изглежда повтарящо се, но има някаква основателна причина да споменете тези точки отново и бихте разбрали, когато го разберете напълно. Ако все още смятате, че съществува неяснота, моля, оставете ни коментар. Нека се учим заедно, като споделяме подходящите знания!

Популярни Публикации

4 начина да овладеете най -сложните модни тенденции на лятото

Обратното броене до лятото на 2015 г. официално започва. В този момент имате най -важното и сте намалили повечето от най -новите тенденции. Но всяко лято има няколко тенденции, които винаги са малко трудни за справяне. Влезе Клер Дистенфелд, собственик на луксозния бутик Fivestory в Ню Йорк. С новините за тригодишния бутик, който стартира електронната търговия тази седмица, решихме да разгледаме сайта и да видим как приказно модерните модели Distenfeld изглеждат едни от най-шикозните, но предизвикателни. Жилетка Balmain, тениска Gap, панталони Lyn Devon и еспадрили Chloe. Панталони с щампа: „Винаги казвам баланс, баланс, баланс“, разсъждава Дистенфелд, докато моделира панталони с ананасов принт с бяла тениска Gap и хрупкава бяла жилетка. „Ако панталоните са забавни и силни, поддържайте горната част и обувките възможно най-прости-белите тениски са ми любими, белите копчета също са страхотни.“ Тя също така съветва да избягвате носенето на цветни върхове с принтирани панталони. Но в крайна сметка не само това, с което ги оформяте. Дистенфелд казва: „Трябва да ги притежавате! Бъдете в тях и ги оставете да говорят с вашата личност. Cushnie et Ochs top, Giamba culottes, Chloe espadrilles, Smoke и

Разликата между Imitrex и Relpax

Мигрена Една от най-често срещаните причини за главоболие е острата мигренозна атака. Това засяга 30 милиона души в САЩ и около

Разлика между уважение и чест

Каква е разликата между уважението и честта? И двете думи се използват заедно с възхищение от някого или нещо. 'Уважение' дори се намира в

Разлика между SATA и SATA 2

SATA срещу SATA 2 SATA (Serial AT Attachement) е стандарт за свързване на високоскоростни устройства, най-вече твърди дискове, с дънната платка на компютър. То има

Разлика между делфините и китовете

Делфини срещу китове Делфините и китовете принадлежат към групата на китоподобните. Тази група е разделена на две групи; назъбени китове и китове балеини. Делфини

Разлика между Xvid и H.264

Xvid срещу H.264 Разпространението на ръчни устройства, които могат да възпроизвеждат видеоклипове, също е стимулирано от развитието на видео кодеци със загуби, които работят на