Unterschied zwischen DDA und Bresenham-Algorithmus Differenz zwischen

Anonim

Der digitale Differentialalgorithmus (DDA) und Die Bresenhams-Algorithmus sind die digitalen Linien zeichnen Algorithmen und werden in der Computergrafik verwendet, um Bilder zu zeichnen. Früher haben wir analytische Analysatoren zur Berechnung der Pixel verwendet und dadurch Linienzeichnungen ermöglicht. Aber diese analytischen Methoden sind nicht so genau wie die digitalen Methoden, die wir mit der Verwendung dieser digitalen Algorithmen jetzt und wie in jedem Bereich auch in der Computergrafik mit qualitativ hochwertigeren Methoden entwickelt haben. Die Erfindung dieser Algorithmen ist ein perfektes Beispiel. Bevor wir fortfahren, lassen Sie uns das Konzept hinter diesen Algorithmen betrachten. Obwohl es außerhalb unserer Diskussion liegt, ist es wichtig, auf die grundlegenden Unterschiede zwischen den beiden hinzuweisen. Wenn Sie mit den Algorithmen wirklich vertraut sind, können Sie zu den tatsächlichen Unterschieden springen, die sich am Ende dieser Seite befinden.

Was ist digitaler Differential-Algorithmus (DDA)?

Ein DDA wird hauptsächlich zum Zeichnen von Linien in Computergrafiken verwendet und verwendet reale Werte, während die nächsten Pixelwerte vorhergesagt werden. Nehmen wir den Anfangspixelwert als (X0, Y0) (X0, Y0) und das Zielpixel als (X1, Y1) (X1, Y1) an. Wir werden lernen, wie die Zielpixelwerte aus dem bekannten Pixelwert (X0, Y0) (X0, Y0) wie folgt berechnet werden.

  • Wie berechnet man den Zielpunktwert mit DDA?

Schritt-1: Hier haben wir den Eingang (X0, Y0) (X0, Y0) und wir sollten identifizieren, ob die Linie parallel zur X-Achse oder zur Y-Achse verläuft. Um das herauszufinden, berechnen wir nun den Unterschied zwischen den Anfangs- und Zielpixelwerten.

dx = X1 - X0

dy = Y1 - Y0

Schritt-2: Nun haben wir die Differenz identifiziert und sollten die Linie entlang der x-Achse zeichnen, wenn 'dx' gleich Null ist Andernfalls sollten wir die Linie parallel zur y-Achse zeichnen. Hier ist die tatsächliche Berechnung in Bezug auf die Computersprache.

if (absolut (dx)> absolut (dy))

Schritte = absolut (dx);

sonst

Schritte = absolut (dy);

Schritt-3: Jetzt ist es Zeit, die tatsächlichen 'x' Koordinaten oder die 'y' Koordinaten Pixelwerte zu identifizieren, um die Linie zu zeichnen.

X increment = dx / (float) Schritte;

Y Inkrement = dy / (Float) Schritte;

Schritt-4: Dies muss berechnet werden, bis wir das Zielpixel erreicht haben. Der DDA-Algorithmus rundet den Pixelwert während der Berechnung auf den nächsten ganzzahligen Wert ab. Hier ist das Codebeispiel von dem, was wir jetzt besprochen haben.

Für (int v = 0; v

{

x = x + X Inkrement;

y = y + y Inkrement;

Putpixel (Runde (x), Runde (y));

}

Wir sind fertig mit dem Zeichnen der Linie mit dem DDA und lassen Sie uns jetzt zu den Bresenham's gehen!

Was ist Bresenhams Algorithmus?

Es ist auch ein digitaler Strichzeichnungsalgorithmus und wurde von Bresenham im Jahr 1962 erfunden und deshalb hat er den gleichen Namen. Dieser Algorithmus ist genauer und verwendete Subtraktion und Addition, um den Pixelwert beim Zeichnen der Linie zu berechnen. Die Genauigkeit des Bresenham-Algorithmus ist zuverlässig beim Zeichnen von Kurven und Kreisen. Schauen wir uns an, wie dieser Algorithmus funktioniert.

Schritt-1: Die Algorithmen von Bresenham nehmen die Anfangspixelkoordinate als (x a + 1 , y a ) an.

Schritt-2: Er berechnet automatisch den nächsten Pixelwert als (x a + 1 , y a + 1 ). Hier ist 'a' der inkrementelle Wert und der Algorithmus berechnet sie durch Addieren oder Subtrahieren der Gleichungen, die er gebildet hat.

Dieser Algorithmus berechnet genaue Werte ohne Abrundung und sieht auch einfacher aus!

  • Numerisches Beispiel des Bresenham-Algorithmus:

Betrachten wir nun die Punkte (0, 0) und (-8, -4) und lassen Sie uns eine Linie zwischen diesen Punkten unter Verwendung des Bresenham-Algorithmus zeichnen.

Gegebene Daten, (x1, y1) = (0, 0) und (x2, y2) = (-8, -4).

Berechnen wir nun die Differenzwerte wie folgt.

Δx = x2-x1 = -8-0 = 8

Daher ist der Inkrementalwert für x = Δx / x2 = 8 / -8 = -1.

Δy = y2-y1 = -4-0 = 4

Daher ist der inkrementelle Wert für y = Δy / y2 = 4 / -4 = -1.

Entscheidungsvariable = e = 2 * (Δy) - (Δx)

Daher gilt e = 2 * (4) - (8) = 8-8 = 0

Mit der obigen Berechnung, let Wir tabellieren die resultierenden Werte. Die Werte der y-Koordinate werden basierend auf einer Entscheidungsvariablen angepasst und wir ignorieren hier nur ihre Berechnung.

Pixel x y Entscheidungsvariable
(0, 0) 0 0 0
(- 1, 0) - 1 0 Ein Wert
(- 2, -1) -2 -1 0
(- 3, -1) -3 < -1 Ein Wert (- 4, -2)
-4 -2 0 (- 5, -2)
-5 > -2 Ein Wert (- 6, -3) -6
-3 0 (- 7, -3) -7
-3 Ein Wert (- 8, -4) -8
-4 0 Unterschiede zwischen DDA & Bresenham-Algorithmus :

Arithmetische Berechnung: Der DDA verwendet reale Werte in seinen Berechnungen mit der Verwendung von Fließkommawerten. Die nächsten Pixel- oder Punktwerte werden mit Differentialgleichungen ermittelt.

  • X Inkrement = dx / (Float) Schritte

Y Inkrement = dy / (Float) Schritte

Hier werden keine festen Konstanten verwendet, sondern in Bresenhams Algorithmus Fixpunkten werden in arithmetischen Berechnungen verwendet. Der Bresenham-Algorithmus verwendet Ganzzahlarithmetik im Gegensatz zum DDA.

Art der verwendeten Operation:

Die DDA löst die Differentialgleichungen mit Multiplikations- und Divisionsoperationen. Sie könnten das gleiche hier bemerken, X increment = dx / (float) steps. Der Bresenham-Algorithmus verwendet Additions- und Subtraktionsoperationen, und Sie können das gleiche hier in seiner nächsten Pixelwert-Berechnungsgleichung bemerken (x

  • a + 1

, y a + 1 ). Die Berechnung ist in Bresenham im Vergleich zur DDA einfacher. Effizienz: Wie bereits erwähnt, verwendet Bresenhams Algorithmus einfachere Arithmetik als die DDA und führt zu effizienten Ergebnissen.

  • Geschwindigkeit:

Da DDA Gleitkommazahlen zusammen mit Multiplikations- und Divisionsoperationen verwendet, ist es vergleichsweise langsamer, während Bresenhams Algorithmus nur Ganzzahlarithmetik zusammen mit Additionen und Subtraktionen verwendet. Dies reduziert die für seine Berechnungen benötigte Zeit erheblich und ist daher schneller als die DDA.

  • Genauigkeit: Obwohl DDA Gleitkommawerte verwendet, ist die Genauigkeit von DDA nicht so gut wie die von Bresenham. Eine Vielzahl von Faktoren beeinflussen dieses Konzept und daher ist Bresenham genauer als die DDA.
  • Abrundung: Sehen Sie sich hier die Berechnung des DDA an.
  • X increment = dx / (float) steps Sie können den 'float' bemerken und daher werden die Werte nicht abgerundet, während der Bresenham-Algorithmus die Werte auf die nächste ganze Zahl abrundet. Daher sind die verwendeten Werte im Bresenham-Algorithmus einfacher.

Was zeichnet es?

Mit dem DDA können Kreise und Kurven von Zeichnungslinien getrennt gezeichnet werden. Der Bresenham-Algorithmus ist auch in der Lage, alle oben erwähnten zu zeichnen, und seine Genauigkeit ist wirklich höher als die der DDA. In ähnlicher Weise könnte der Bresenham-Algorithmus effiziente Kurven liefern, die von der DDA erzeugt werden. Beide Algorithmen können auch Dreiecke und Polygone zeichnen.

  • Was ist teuer?

Da DDA auch eine Abrundung beinhaltet, ist es teurer als die Verwendung des Bresenham-Algorithmus.

  • Was ist ein optimierter Algorithmus?

Aus unserer obigen Diskussion geht hervor, dass der Bresenham-Algorithmus hinsichtlich Geschwindigkeit, Kosten und Einsatz von Operationen optimiert ist.

  • Betrachten wir die Unterschiede in tabellarischer Form.

S. Nein

Unterschiede in

Digitaler Differentialalgorithmus Bresenham-Algorithmus 1. Warum der Name?
Nur weil es die digitale Implementierung der Gleichungen war, hat es den Namen. Es wurde von J. E. Bresenham im Jahr 1962 erfunden und daher der Name. 2. Berechnungen
Es erfordert strengere Berechnungen. Die verwendeten Berechnungen sind wirklich einfacher. 3. Benutzte Operationstypen
Es wurden Multiplikationen und Divisionen verwendet. Die hier verwendeten Abtastdifferentialgleichungen sind Xincrement = dx / (float) Schritte, Yincrement = dy / (float) Schritte. Es verwendet Additionen und Subtraktionen. Die Beispielrechnung kann hier wie folgt bezeichnet werden (x

a + 1

, y a + 1 ). 4. Arithmetische Rechenwerte
Es werden Gleitkommawerte verwendet. Es werden nur die ganzzahligen Werte verwendet. 5. Effizienz
Komplexe Arithmetik führt zu geringerer Effizienz. Einfachere Arithmetik führt zu mehr Effizienz. 6. Geschwindigkeit
Die Verwendung von Multiplikationen und Divisionsoperationen benötigt viel Zeit für ihre Berechnungsprozesse. Die Verwendung von Additions- und Subtraktionsoperationen benötigt weniger Zeit als die DDA. 7. Genauigkeit
Die Genauigkeit ist geringer. Es ist genauer. 8. Abrundung
Es verwendet echte Werte und rundet die Werte niemals ab. Rundet die Werte auf die nächsten ganzzahligen Werte ab. 9. Zeichnungsfähigkeit
Es kann Linien, Kreise und Kurven zeichnen, jedoch mit geringerer Genauigkeit. Mit diesem Algorithmus können wir sogar Dreiecke und Polygone zeichnen. Es kann Linien, Kreise und Kurven mit größerer Effizienz zeichnen. Mit diesem Algorithmus können auch Dreiecke und Polygone gezeichnet werden. 10. Kosten für Berechnungen
Es ist teuer, da es auch eine Abrundung beinhaltet. Die Verwendung des Bresenham-Algorithmus ist billiger als die DDA. 11. Optimierter Algorithmus
Es ist kein optimierter Algorithmus Es ist ein optimierter Algorithmus. Wir haben uns mit jedem möglichen Unterschied zwischen dem DDA und dem Bresenham-Algorithmus beschäftigt. Es mag sich sogar wiederholen, aber es gibt einen triftigen Grund, diese Punkte noch einmal zu erwähnen, und Sie würden es erfahren, wenn Sie es vollständig verstehen. Wenn Sie immer noch das Gefühl haben, dass es eine Zweideutigkeit gibt, hinterlassen Sie uns bitte einen Kommentar. Lasst uns gemeinsam lernen, indem wir das richtige Wissen teilen!