Cleaned up surface
This commit is contained in:
parent
685d70439b
commit
851c2bdac2
@ -34,7 +34,6 @@ function Lisp (input, lib) {
|
|||||||
|
|
||||||
return interpret(input[2], letContext)
|
return interpret(input[2], letContext)
|
||||||
},
|
},
|
||||||
|
|
||||||
lambda: function (input, context) {
|
lambda: function (input, context) {
|
||||||
return function () {
|
return function () {
|
||||||
const lambdaArguments = arguments
|
const lambdaArguments = arguments
|
||||||
@ -46,7 +45,6 @@ function Lisp (input, lib) {
|
|||||||
return interpret(input[2], new Context(lambdaScope, context))
|
return interpret(input[2], new Context(lambdaScope, context))
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
if: function (input, context) {
|
if: function (input, context) {
|
||||||
if (interpret(input[1], context)) {
|
if (interpret(input[1], context)) {
|
||||||
return interpret(input[2], context)
|
return interpret(input[2], context)
|
||||||
|
@ -25,43 +25,8 @@ function Surface (ronin) {
|
|||||||
// Shape
|
// Shape
|
||||||
|
|
||||||
this.stroke = (shape, width, color) => {
|
this.stroke = (shape, width, color) => {
|
||||||
if (shape.t === 'rect') {
|
|
||||||
this.strokeRect(shape, width, color)
|
|
||||||
} else if (shape.t === 'line') {
|
|
||||||
this.strokeLine(shape, width, color)
|
|
||||||
} else if (shape.t === 'circle') {
|
|
||||||
this.strokeCircle(shape, width, color)
|
|
||||||
} else {
|
|
||||||
console.warn('Unknown type')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this.strokeRect = (rect, width, color) => {
|
|
||||||
this.context.beginPath()
|
this.context.beginPath()
|
||||||
this.context.moveTo(rect.x, rect.y)
|
this.trace(shape)
|
||||||
this.context.lineTo(rect.x + rect.w, rect.y)
|
|
||||||
this.context.lineTo(rect.x + rect.w, rect.y + rect.h)
|
|
||||||
this.context.lineTo(rect.x, rect.y + rect.h)
|
|
||||||
this.context.lineTo(rect.x, rect.y)
|
|
||||||
this.context.lineWidth = width
|
|
||||||
this.context.strokeStyle = color
|
|
||||||
this.context.stroke()
|
|
||||||
this.context.closePath()
|
|
||||||
}
|
|
||||||
|
|
||||||
this.strokeLine = function (line, width, color) {
|
|
||||||
this.context.beginPath()
|
|
||||||
this.context.moveTo(line.a.x, line.a.y)
|
|
||||||
this.context.lineTo(line.b.x, line.b.y)
|
|
||||||
this.context.lineWidth = width
|
|
||||||
this.context.strokeStyle = color
|
|
||||||
this.context.stroke()
|
|
||||||
this.context.closePath()
|
|
||||||
}
|
|
||||||
|
|
||||||
this.strokeCircle = function (circle, width, color) {
|
|
||||||
this.context.beginPath()
|
|
||||||
this.context.arc(circle.x, circle.y, circle.r, 0, 2 * Math.PI)
|
|
||||||
this.context.lineWidth = width
|
this.context.lineWidth = width
|
||||||
this.context.strokeStyle = color
|
this.context.strokeStyle = color
|
||||||
this.context.stroke()
|
this.context.stroke()
|
||||||
@ -71,33 +36,42 @@ function Surface (ronin) {
|
|||||||
// Fill
|
// Fill
|
||||||
|
|
||||||
this.fill = (shape, color) => {
|
this.fill = (shape, color) => {
|
||||||
|
this.context.beginPath()
|
||||||
|
this.trace(shape)
|
||||||
|
this.context.fillStyle = color
|
||||||
|
this.context.fill()
|
||||||
|
this.context.closePath()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Tracers
|
||||||
|
|
||||||
|
this.trace = function (shape) {
|
||||||
if (shape.t === 'rect') {
|
if (shape.t === 'rect') {
|
||||||
this.fillRect(shape, color)
|
this.traceRect(shape)
|
||||||
|
} else if (shape.t === 'line') {
|
||||||
|
this.traceLine(shape)
|
||||||
} else if (shape.t === 'circle') {
|
} else if (shape.t === 'circle') {
|
||||||
this.fillCircle(shape, color)
|
this.traceCircle(shape)
|
||||||
} else {
|
} else {
|
||||||
console.warn('Unknown type')
|
console.warn('Unknown type')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.fillRect = (rect, color) => {
|
this.traceRect = function (rect) {
|
||||||
this.context.beginPath()
|
|
||||||
this.context.moveTo(rect.x, rect.y)
|
this.context.moveTo(rect.x, rect.y)
|
||||||
this.context.lineTo(rect.x + rect.w, rect.y)
|
this.context.lineTo(rect.x + rect.w, rect.y)
|
||||||
this.context.lineTo(rect.x + rect.w, rect.y + rect.h)
|
this.context.lineTo(rect.x + rect.w, rect.y + rect.h)
|
||||||
this.context.lineTo(rect.x, rect.y + rect.h)
|
this.context.lineTo(rect.x, rect.y + rect.h)
|
||||||
this.context.lineTo(rect.x, rect.y)
|
this.context.lineTo(rect.x, rect.y)
|
||||||
this.context.fillStyle = color
|
|
||||||
this.context.fill()
|
|
||||||
this.context.closePath()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.fillCircle = function (circle, color) {
|
this.traceLine = function (line) {
|
||||||
this.context.beginPath()
|
this.context.moveTo(line.a.x, line.a.y)
|
||||||
|
this.context.lineTo(line.b.x, line.b.y)
|
||||||
|
}
|
||||||
|
|
||||||
|
this.traceCircle = function (circle) {
|
||||||
this.context.arc(circle.x, circle.y, circle.r, 0, 2 * Math.PI)
|
this.context.arc(circle.x, circle.y, circle.r, 0, 2 * Math.PI)
|
||||||
this.context.fillStyle = color
|
|
||||||
this.context.fill()
|
|
||||||
this.context.closePath()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// IO
|
// IO
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; Shapes
|
; Shapes
|
||||||
|
|
||||||
(
|
(
|
||||||
(fill (circle (div (of (frame) "w") 2) (div (of (frame) "h") 2) 100) "red"))
|
(stroke (circle (div (of (frame) "w") 2) (div (of (frame) "h") 2) 100) 2 "red"))
|
Loading…
x
Reference in New Issue
Block a user