( bzt | 2024. 10. 26., szo – 12:34 )

Ennél nagyobb falat. A lényeg az, hogy ez a vonalhúzó algoritmus egy egyenes anti-aliasolt vonalat húz A-ból B-be, ahol A is és B is egész pixelekre esik, de a köztes értékek nem. Nekem ezt egy, két, három, vagy akár több ponton meg kell törnöm és lejtést váltanom. Ezeket a köztes pontokat már kiszámolom, azt is tudom, hogy mennyire "lógnak le" az egész pixel koordinátáról, és a lejtés is megvan. Az egyetlen, ami hibádzik, hogy ezeknél a köztes pontoknál nem veszi figyelembe a korábbi hibahatárt, mert az eredeti Breshenam mindig egész pixelkoordinátákból indul ki és érkezik, emiatt a töréspontokon "elveszik" az anti-alias. Ez így elég bonyi, nem véletlenül próbáltam leegyszerűsíteni a feladatot.

Mondjuk úgy, van A, B és C pont, ahol C garantáltan az A és B köztötti vonalra esik, és nem egész pixelkoordinátájú. Ekkor line(A,B) ugyanazt kell kirajzolja, mint két line'(A,C) és line'(C,B) hívás egymásután (kerekítési hiba ide vagy oda ugyanazt).