Zaokrąglanie OK, ale to nie rozwiązuje problemu z pierwszego posta:
C1 = (2,7) i C2 = (5,1)
Jak wyliczył Madm4n:
y = -2*x + 11 (równanie 1)
Dostaniemy "rozstrzelone" punkty:
X = 2, Y = 7
X = 3, Y = 5
X = 4, Y = 3
X = 5, Y = 1
[X][X][C][X][X][X][X][X]
[X][X][X][X][X][X][X][X]
[X][X][X][a][X][X][X][X]
[X][X][X][X][X][X][X][X]
[X][X][X][X][a][X][X][X]
[X][X][X][X][X][X][X][X]
[X][X][X][X][X][C][X][X]
[X][X][X][X][X][X][X][X]
Ja bym proponował "zamienić" x i y by otrzymać:
x = -0.5y + 5.5 (dzielimy równanie 1 przez -2 i "porządkujemy") (równanie 2)
Równanie 2 opisuje nadal tą samą prostą co równanie 1.
Teraz dla kolejnych y x zaokrąglamy jak MJay chciał:
y = 1, x = 5
y = 2, x = 4.5 -> x = 5
y = 3, x = 4
y = 4, x = 3.5 -> x = 4
y = 5, x = 3
y = 6, x = 2.5 -> x = 3
y = 7, x = 2
Otrzymujemy:
X = [5, 5, 4, 4, 3, 3, 2]
Y = [1, 2, 3, 4, 5, 6, 7]
Efekt: "ciągła" prosta
[X][X][C][X][X][X][X][X]
[X][X][X][a][X][X][X][X]
[X][X][X][a][X][X][X][X]
[X][X][X][X][a][X][X][X]
[X][X][X][X][a][X][X][X]
[X][X][X][X][X][a][X][X]
[X][X][X][X][X][C][X][X]
[X][X][X][X][X][X][X][X]
To czy "odwracać" równanie 1 ustalamy patrząc na zakres współrzędnych punktów końcowych:
C1 = (2,7) i C2 = (5,1)
abs(C1x - C2x) = 3
abs(C1y - C2y) = 6
Tu "zakres" po współrzędnej y jest większy, więc biorąc y za zmienną niezależną otrzymamy lepszą "rozdzielczość" punktów na prostej łączacej C1 i C2.
Gdy x był zmienną niezależną otrzymaliśmy tylko 4 punkty.
Gdy y był zmienną niezależną otrzymaliśmy już 7 punków.
Czyli najpierw sprawdzamy po której zmiennej x czy y "zakres" jest większy i wyznaczamy od razu porządane równanie. Otrzymamy od razu współrzędne wszystkich punktów z zakresu zaokrąglone w wybrany przez nas sposób.
Pozdrawiam