DDA กับ Bresenham Algorithm
DDA และ Bresenham Algorithm เป็นคำศัพท์ที่คุณจะเจอเมื่อเรียนคอมพิวเตอร์กราฟิก ก่อนอธิบายความแตกต่างระหว่างคำสองคำนี้ เรามาดูกันว่า DDA คืออะไร และ Bresenham Algorithm คืออะไร การประดิษฐ์คอมพิวเตอร์ทำให้สิ่งต่างๆ เป็นเรื่องง่าย และหนึ่งในนั้นคือการแก้สมการเชิงอนุพันธ์ ก่อนหน้านี้ทำโดยเครื่องวิเคราะห์ความแตกต่างทางกลที่ช้าและเต็มไปด้วยข้อผิดพลาด แต่ DDA หรือ Digital differential Analyzer เป็นการประยุกต์ใช้เครื่องวิเคราะห์ในรูปแบบดิจิทัลที่แม่นยำและรวดเร็ว เครื่องวิเคราะห์ความแตกต่างใช้เพื่อสร้างเส้นระหว่างจุดสองจุดเพื่อให้มองเห็นเส้นตรงหรือรูปหลายเหลี่ยมที่มีจำนวนด้าน n ด้านบนหน้าจอระยะห่างระหว่างจุดสองจุดหรือพิกเซลอธิบายโดยสมการเชิงอนุพันธ์ซึ่งมีการระบุพิกัดของจุดเริ่มต้นและจุดสิ้นสุดในซอฟต์แวร์ สามารถทำได้โดยอัลกอริทึม DDA และ Bresenham
DDA คืออะไร
DDA ใช้ในการวาดเส้นตรงเพื่อสร้างเส้น สามเหลี่ยม หรือรูปหลายเหลี่ยมในคอมพิวเตอร์กราฟิก DDA วิเคราะห์ตัวอย่างตามแนวเส้นในช่วงเวลาปกติของพิกัดหนึ่งเป็นจำนวนเต็ม และสำหรับพิกัดอื่นๆ จะปัดเศษของจำนวนเต็มที่อยู่ใกล้เส้นมากที่สุด ดังนั้นในขณะที่เส้นดำเนินไป มันจะสแกนพิกัดจำนวนเต็มแรกและปัดเศษที่สองเป็นจำนวนเต็มที่ใกล้เคียงที่สุด ดังนั้นเส้นที่วาดโดยใช้ DDA สำหรับพิกัด x มันจะเป็น x0 ถึง x1 แต่สำหรับพิกัด y มันจะเป็น y=ax+ b และเพื่อวาดฟังก์ชัน มันจะเป็น Fn(x, y ปัดเศษ).
อัลกอริทึม Bresenham คืออะไร
Bresenham Algorithm ได้รับการพัฒนาโดย 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 ใช้การลบและการบวกเท่านั้น