Unterschied zwischen DDA und Bresenham-Algorithmus Differenz zwischen
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! 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! 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. 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 , 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. 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. 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. Da DDA auch eine Abrundung beinhaltet, ist es teurer als die Verwendung des Bresenham-Algorithmus. Aus unserer obigen Diskussion geht hervor, dass der Bresenham-Algorithmus hinsichtlich Geschwindigkeit, Kosten und Einsatz von Operationen optimiert ist. S. Nein Unterschiede inWas ist Bresenhams Algorithmus?
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.