about summary refs log tree commit diff stats
path: root/drawing.lua
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2022-06-17 23:15:09 -0700
committerKartik K. Agaram <vc@akkartik.com>2022-06-17 23:15:09 -0700
commit0248339898ed7c6f25dca5ae10458a8fee969c47 (patch)
tree37ec333ecbb0ee28249981bcdb900b1788ca8d37 /drawing.lua
parent26995dd62e72b5d8075429c29b311125dbef5920 (diff)
downloadtext.love-0248339898ed7c6f25dca5ae10458a8fee969c47.tar.gz
more precise shape selection
It's important that the error be additive rather than multiplicative,
otherwise the area grows asymmetrically along a line.

Hopefully freehand drawings will work more intuitively now.
Diffstat (limited to 'drawing.lua')
-rw-r--r--drawing.lua17
1 files changed, 17 insertions, 0 deletions
diff --git a/drawing.lua b/drawing.lua
index 7ebf177..e191767 100644
--- a/drawing.lua
+++ b/drawing.lua
@@ -4,6 +4,8 @@ geom = require 'geom'
 
 require 'drawing_tests'
 
+Show_nearby = false
+
 -- All drawings span 100% of some conceptual 'page width' and divide it up
 -- into 256 parts.
 function Drawing.draw(line)
@@ -28,6 +30,17 @@ function Drawing.draw(line)
     return
   end
 
+  if Show_nearby then
+    love.graphics.setColor(1,0.75,0.75)
+    for y=0,127 do
+      for x=0,255 do
+        if geom.on_any_shape(x,y, line) then
+          love.graphics.circle('fill', Drawing.pixels(x)+Margin_left, Drawing.pixels(y)+line.y, 2)
+        end
+      end
+    end
+  end
+
   local mx,my = Drawing.coord(pmx-Margin_left), Drawing.coord(pmy-line.y)
 
   for _,shape in ipairs(line.shapes) do
@@ -370,6 +383,10 @@ function Drawing.mouse_released(x,y, button)
 end
 
 function Drawing.keychord_pressed(chord)
+  if chord == 'C-a' then
+    Show_nearby = not Show_nearby
+    return
+  end
   if chord == 'C-p' and not App.mouse_down(1) then
     Current_drawing_mode = 'freehand'
   elseif App.mouse_down(1) and chord == 'l' then