Added :d to mouse shapes
This commit is contained in:
parent
c88968bf05
commit
bcd98907c9
@ -113,7 +113,6 @@ function Lisp (lib = {}, includes = []) {
|
|||||||
|
|
||||||
const interpret = async function (input, context) {
|
const interpret = async function (input, context) {
|
||||||
if (!input) { console.warn('Lisp', 'error', context.scope); return null }
|
if (!input) { console.warn('Lisp', 'error', context.scope); return null }
|
||||||
|
|
||||||
if (context === undefined) {
|
if (context === undefined) {
|
||||||
return interpret(input, new Context(lib))
|
return interpret(input, new Context(lib))
|
||||||
} else if (input instanceof Array) {
|
} else if (input instanceof Array) {
|
||||||
|
@ -126,13 +126,13 @@ function Ronin () {
|
|||||||
a: { x: this.mouseOrigin.x, y: this.mouseOrigin.y },
|
a: { x: this.mouseOrigin.x, y: this.mouseOrigin.y },
|
||||||
b: { x: pos.x, y: pos.y }
|
b: { x: pos.x, y: pos.y }
|
||||||
}
|
}
|
||||||
const distance = Math.sqrt(((line.a.x - line.b.x) * (line.a.x - line.b.x)) + ((line.a.y - line.b.y) * (line.a.y - line.b.y)))
|
const d = Math.sqrt(((line.a.x - line.b.x) * (line.a.x - line.b.x)) + ((line.a.y - line.b.y) * (line.a.y - line.b.y)))
|
||||||
const circle = {
|
const circle = {
|
||||||
cx: this.mouseOrigin.x,
|
cx: this.mouseOrigin.x,
|
||||||
cy: this.mouseOrigin.y,
|
cy: this.mouseOrigin.y,
|
||||||
r: distance
|
r: d
|
||||||
}
|
}
|
||||||
return { x, y, line, rect, pos, circle, type, 'is-down': type !== 'mouse-up' ? true : null }
|
return { x, y, d, line, rect, pos, circle, type, 'is-down': type !== 'mouse-up' ? true : null }
|
||||||
}
|
}
|
||||||
|
|
||||||
// Zoom
|
// Zoom
|
||||||
|
16
examples/projects/spire.lisp
Normal file
16
examples/projects/spire.lisp
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
; this demo shows how to use the mouse events to draw make a simple drawing tool.
|
||||||
|
;
|
||||||
|
(clear)
|
||||||
|
;
|
||||||
|
(def gradient-line
|
||||||
|
(line frame-rect:c 0 frame-rect:c frame-rect:h))
|
||||||
|
;
|
||||||
|
(defn draw-circle
|
||||||
|
(e)
|
||||||
|
(
|
||||||
|
(stroke
|
||||||
|
(circle e:x e:y e:d) 1
|
||||||
|
(gradient gradient-line
|
||||||
|
("black" "#ffb545")))))
|
||||||
|
;
|
||||||
|
(on "mouse-move" draw-circle)
|
@ -1,37 +0,0 @@
|
|||||||
; this demo shows how to use the mouse events to draw make a simple drawing tool.
|
|
||||||
;
|
|
||||||
(clear)
|
|
||||||
;
|
|
||||||
(def prev-pos {:x 0 :y 0})
|
|
||||||
;
|
|
||||||
(defn stroke-color
|
|
||||||
(e)
|
|
||||||
(if
|
|
||||||
(eq e:is-down true) "#ffb545" "#72dec2"))
|
|
||||||
;
|
|
||||||
(defn draw-line
|
|
||||||
(e)
|
|
||||||
(
|
|
||||||
(if
|
|
||||||
(eq e:is-down true)
|
|
||||||
(
|
|
||||||
(debug e:is-down)
|
|
||||||
(stroke
|
|
||||||
(line prev-pos:x prev-pos:y e:x e:y) 2 "white")
|
|
||||||
(set prev-pos "x" e:x "y" e:y)
|
|
||||||
(debug prev-pos)
|
|
||||||
(debug e)))))
|
|
||||||
;
|
|
||||||
(defn draw-circle
|
|
||||||
(e)
|
|
||||||
(
|
|
||||||
(debug e)
|
|
||||||
(set prev-pos "x" e:x "y" e:y)
|
|
||||||
(debug e:x)
|
|
||||||
(stroke
|
|
||||||
(circle e:x e:y 10) 4
|
|
||||||
(stroke-color e))))
|
|
||||||
;
|
|
||||||
(on "mouse-down" draw-circle)
|
|
||||||
(on "mouse-up" draw-circle)
|
|
||||||
(on "mouse-move" draw-line)
|
|
Loading…
x
Reference in New Issue
Block a user