| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Deleting a point deletes all shapes that use it (but not other points in those shapes).
|
|
|
|
|
|
|
| |
any other operation
1. hover over point, hit C-v
2. press mouse on point, hit v
|
|
|
|
|
|
|
|
|
|
|
|
| |
Hover mouse on a point, hit a hotkey (C-v), then move mouse without
clicking, and click to finalize.
The hotkey is like a pointer tool, except you have to already be at the
thing you want to erase. And it's slightly inconvenient to move multiple
points one by one.
In the process I also fixed a bug: keychord clauses should always
specify the mouse button state.
|
|
|
|
|
|
|
|
|
| |
line->circle
circle->line
line->polygon
polygon->line
circle->polygon
polygon->circle
|
|
|
|
|
| |
We start out drawing a circle, but instead of releasing the mouse we hit
'a'.
|
| |
|
|
|
|
|
| |
Polygons are closed. Add vertices to them by pressing 'p' while holding
down the mouse.
|
| |
|
|
|
|
| |
Thanks Kiran and Ravi.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This is like Sketchpad.
|
| |
|
|
|
|
| |
Freehand strokes are a special case. Let's ignore them for a bit.
|
|
|
|
|
|
| |
the drawing
Easiest way to do this is to keep the screen areas for button and drawing disjoint.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Desired properties:
- fluently draw lots of precise drawings
- requires expressing lots of different kinds of constraints
- always know what pressing a key is going to do
- when typing, don't care where the mouse pointer is
Less important:
- discoverability, learnability. Provide a hotkey for help.
Current plan:
- chorded keys to modify drawings while mouse button is not pressed
- unchorded keys to modify drawings only while mouse button is pressed
- make changes while drawing a shape by pressing a key while mouse
button is pressed
- make changes to a drawing by hovering mouse pointer at a shape and
pressing a key (unary operators)
- add constraints after drawing by hovering mouse pointer at a shape,
pressing a key and moving mouse pointer to a second shape (binary
operators)
- almost any change can be made to a shape after it's drawn (inspired
by Sketchpad)
- keys pressed while drawing a shape act as abbreviations to
performing the action after drawing
First example in this PR:
- you press mouse button, start drawing freehand
- you realize you want a simple line, not a freehand stroke
- without releasing the mouse button, you press 'l'
- now you're drawing a straight line
You could also release the mouse button and finish the stroke, then
press 'ctrl-l' while hovering the mouse pointer on the stroke to turn it
into a line.
There's an asymmetry here. Strokes require a lot more information, so
while you can turn a stroke into a line, you can't turn a line into a
stroke.
Strokes are an exception where you can't switch to freehand mode after
you start drawing. You have to press C-f before drawing.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://merveilles.town/@neauoire/108301005736317873
Drawbacks:
Smoothing eliminates high-frequency noise but not low-frequency bumps.
Making a drawing end at the start point is very challenging.
Still perhaps a useful addition to the toolbox for now. I'm going to
need a cambrian explosion of tools in the toolbox for a while before I
prune.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Now we have separate keywords for returning vs drawing something.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
love.graphics.line(1, 1, 500, 500)
However, we're now no longer printing results or errors. Time now to
design the data model. When do we (re)evaluate code. When do we display
results. Where do errors go.
|
| |
|
| |
|
|
|
|
|
| |
For shift we'll mostly rely on love.textinput. For the rest I've created
a simple driver.
|
| |
|