อัลกอริธึมบรรทัดของ Bresenhamสามารถใช้เพื่อกำหนดว่าจุดใดในตารางแรสเตอร์ที่จะลงจุดเพื่อให้ได้การประมาณภาพที่เหมาะสมของส่วนของเส้น
อัลกอริทึมครอบคลุม rasterization ของบรรทัดที่กำหนดโดยจุดเริ่มต้นและจุดสิ้นสุดในพื้นที่พิกัดที่จุดกำเนิดอยู่ทางซ้ายบน พิกัดจำนวนเต็มจะถูกสันนิษฐานว่าทำแผนที่กับจุดศูนย์กลางพิกเซล รูปแบบพื้นฐานของอัลกอริธึมครอบคลุมเพียงหนึ่ง octant ของวงกลม: เส้นที่เพิ่มขึ้นพิกัด X และ Y แต่ความชันเชิงลบที่มีค่าสัมบูรณ์น้อยกว่า 1 octants อื่นทั้งหมดสามารถได้รับการแปลงอย่างง่ายของเรื่องนี้ octant พื้นฐาน
ใน psuedocode รูปแบบพื้นฐานนี้ดูเหมือนว่า:
void DrawLine(Point origin, Point endpoint, Bitmap surface) {
deltaX = endpoint.X - origin.X
deltaY = endpoint.Y - origin.Y
error = 0
// Note the below fails for completely vertical lines.
deltaError = absoluteValue(deltaY / deltaX)
Y = origin.Y
for (X from origin.X to endpoint.X) {
surface.PlotPixel(X, Y)
error = error + deltaError
if (error >= 0.5) {
++Y;
error -= 1.0
}
}
}
เว็บไซต์ Rosetta รหัสมีคอลเลกชันของการใช้งานที่เป็นรูปธรรมในความหลากหลายของภาษา
คุณอาจสนใจอัลกอริทึมแบบบรรทัดของ Wuซึ่งช่วยให้สามารถป้องกันนามแฝงได้