login

<     >

2021-08-26 20:05:26 (UTC-03:00)

Marcel Rodrigues <marcelgmr@gmail.com>

surf: allow non-integral coords in Surf:disk()

diff --git a/surf.lua b/surf.lua
index 5aa3eed..a6a3951 100644
--- a/surf.lua
+++ b/surf.lua
@@ -25,7 +25,7 @@ function Surf:vline(x, y, h, v)
     end
 end
 
-function Surf:disk(cx, cy, r, v)
+function Surf:disk_int(cx, cy, r, v)
     if r == 0 then
         self:pset(cx, cy, v)
         return
@@ -46,17 +46,21 @@ function Surf:disk(cx, cy, r, v)
     end
 end
 
+function Surf:disk(cx, cy, r, v)
+    self:disk_int(util.round(cx), util.round(cy), r, v)
+end
+
 function Surf:line(x0, y0, x1, y1, v, r)
     r = r or 0
     local dx, dy = x1-x0, y1-y0
     local n = math.max(math.abs(dx), math.abs(dy))
     local sx, sy = dx/n, dy/n
     local x, y = x0, y0
-    self:disk(math.floor(x), math.floor(y), r, v)
+    self:disk_int(math.floor(x), math.floor(y), r, v)
     for i = 1, n do
         x = x + sx
         y = y + sy
-        self:disk(math.floor(x), math.floor(y), r, v)
+        self:disk_int(math.floor(x), math.floor(y), r, v)
     end
 end