Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,57 @@
|
|||
import "graphics" for Canvas, ImageData, Color
|
||||
import "dome" for Window
|
||||
|
||||
class Game {
|
||||
static bmpCreate(name, w, h) { ImageData.create(name, w, h) }
|
||||
|
||||
static bmpFill(name, col) {
|
||||
var image = ImageData[name]
|
||||
for (x in 0...image.width) {
|
||||
for (y in 0...image.height) image.pset(x, y, col)
|
||||
}
|
||||
}
|
||||
|
||||
static bmpPset(name, x, y, col) { ImageData[name].pset(x, y, col) }
|
||||
|
||||
static bmpPget(name, x, y) { ImageData[name].pget(x, y) }
|
||||
|
||||
static bmpLine(name, x0, y0, x1, y1, col) {
|
||||
var dx = (x1 - x0).abs
|
||||
var dy = (y1 - y0).abs
|
||||
var sx = (x0 < x1) ? 1 : -1
|
||||
var sy = (y0 < y1) ? 1 : -1
|
||||
var err = ((dx > dy ? dx : - dy) / 2).floor
|
||||
while (true) {
|
||||
bmpPset(name, x0, y0, col)
|
||||
if (x0 == x1 && y0 == y1) break
|
||||
var e2 = err
|
||||
if (e2 > -dx) {
|
||||
err = err - dy
|
||||
x0 = x0 + sx
|
||||
}
|
||||
if (e2 < dy) {
|
||||
err = err + dx
|
||||
y0 = y0 + sy
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static init() {
|
||||
Window.title = "Bresenham's line algorithm"
|
||||
var size = 200
|
||||
Window.resize(size, size)
|
||||
Canvas.resize(size, size)
|
||||
var name = "bresenham"
|
||||
var bmp = bmpCreate(name, size, size)
|
||||
bmpFill(name, Color.white)
|
||||
bmpLine(name, 50, 100, 100, 190, Color.black)
|
||||
bmpLine(name, 100, 190, 150, 100, Color.black)
|
||||
bmpLine(name, 150, 100, 100, 10, Color.black)
|
||||
bmpLine(name, 100, 10, 50, 100, Color.black)
|
||||
bmp.draw(0, 0)
|
||||
}
|
||||
|
||||
static update() {}
|
||||
|
||||
static draw(alpha) {}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue