DDA vs Αλγόριθμος Bresenham
Το DDA και ο αλγόριθμος Bresenham είναι όροι που θα συναντούσατε όταν μελετούσατε γραφικά υπολογιστή. Πριν εξηγήσουμε τη διαφορά μεταξύ αυτών των δύο όρων, ας δούμε τι είναι το DDA και τι είναι ο αλγόριθμος Bresenham. Η εφεύρεση του υπολογιστή έκανε τα πράγματα απλά και ένα από αυτά ήταν η επίλυση διαφορικών εξισώσεων. Παλαιότερα γινόταν με μηχανικό διαφορικό αναλυτή που ήταν αργός και γεμάτος λάθη, αλλά το DDA ή Digital differential Analyzer είναι η εφαρμογή του αναλυτή σε ψηφιακή μορφή που είναι ακριβής και γρήγορος. Ο διαφορικός αναλυτής χρησιμοποιείται για τη δημιουργία γραμμών μεταξύ δύο σημείων, έτσι ώστε μια ευθεία γραμμή ή πολύγωνο με n αριθμό πλευρών να μπορεί να δει στην οθόνη. Η απόσταση μεταξύ δύο σημείων ή ενός εικονοστοιχείου περιγράφεται από μια διαφορική εξίσωση όπου οι συντεταγμένες του σημείου εκκίνησης και του σημείου τέλους καθορίζονται στο λογισμικό. Αυτό μπορεί να επιτευχθεί με τον αλγόριθμο DDA και Bresenham.
Τι είναι το DDA;
Το
DDA χρησιμοποιείται στο σχέδιο ευθείας γραμμής για το σχηματισμό μιας γραμμής, τριγώνου ή πολυγώνου στα γραφικά υπολογιστή. Το DDA αναλύει δείγματα κατά μήκος της γραμμής σε κανονικό διάστημα μιας συντεταγμένης ως ακέραιος και για την άλλη συντεταγμένη στρογγυλοποιεί τον ακέραιο που είναι πλησιέστερος στη γραμμή. Επομένως, καθώς η γραμμή προχωρά, σαρώνει την πρώτη ακέραια συντεταγμένη και στρογγυλοποιεί τη δεύτερη στον πλησιέστερο ακέραιο. Επομένως, μια γραμμή που σχεδιάζεται χρησιμοποιώντας DDA για συντεταγμένες x θα είναι x0 έως x1 αλλά για τη συντεταγμένη y θα είναι y=ax+ b και για τη σχεδίαση της συνάρτησης θα είναι Fn(x, y στρογγυλοποιημένο).
Τι είναι ο αλγόριθμος Bresenham;
Ο αλγόριθμος Bresenham αναπτύχθηκε από τον J. E. Bresenham το 1962 και είναι πολύ ακριβής και πολύ πιο αποτελεσματικός από το DDA. Σαρώνει τις συντεταγμένες, αλλά αντί να τις στρογγυλοποιεί, λαμβάνει υπόψη την αυξητική τιμή προσθέτοντας ή αφαιρώντας και επομένως μπορεί να χρησιμοποιηθεί για τη σχεδίαση κύκλων και καμπυλών. Επομένως, εάν μια γραμμή πρέπει να συρθεί μεταξύ δύο σημείων x και y, τότε οι επόμενες συντεταγμένες θα είναι (xa+1, ya) και (x a+1, ya+1) όπου a είναι η αυξητική τιμή των επόμενων συντεταγμένων και η διαφορά μεταξύ αυτών των δύο θα υπολογιστεί αφαιρώντας ή προσθέτοντας το εξισώσεις που σχηματίζονται από αυτούς.
Διαφορά μεταξύ DDA και αλγόριθμου Bresenham
• Το DDA χρησιμοποιεί κινητήρια σημεία ενώ ο αλγόριθμος Bresenham χρησιμοποιεί σταθερά σημεία.
• Το DDA στρογγυλοποιεί τις συντεταγμένες στον πλησιέστερο ακέραιο αλλά ο αλγόριθμος Bresenham όχι.
• Ο αλγόριθμος Bresenham είναι πολύ ακριβής και αποτελεσματικός από το DDA.
• Ο αλγόριθμος Bresenham μπορεί να σχεδιάσει κύκλους και καμπύλες με πολύ μεγαλύτερη ακρίβεια από το DDA.
• Το DDA χρησιμοποιεί πολλαπλασιασμό και διαίρεση της εξίσωσης, αλλά ο αλγόριθμος Bresenham χρησιμοποιεί μόνο αφαίρεση και πρόσθεση.