diff options
Diffstat (limited to 'rectangles.html')
| -rw-r--r-- | rectangles.html | 42 |
1 files changed, 38 insertions, 4 deletions
diff --git a/rectangles.html b/rectangles.html index 71f83c6..c8b3c82 100644 --- a/rectangles.html +++ b/rectangles.html @@ -31,6 +31,8 @@ body > div { <script type="text/javascript" src="vec2.js"></script> <script type="text/javascript"> +window.z = true; + (function(){ var color_palettes = { alpha: [ @@ -88,8 +90,8 @@ canvas.addEventListener("mousedown", function(e){ mouse.quantize(10) } - var intersects = rects.filter(function(r){ return r.contains(x,y) }) - console.log(intersects) + var intersects = rects.filter(function(r){ return r.focused = r.contains(x,y) }) + // console.log(intersects) if (intersects.length){ dragging = intersects[0] @@ -180,6 +182,7 @@ function solve_rects(){ rects = sort_rects() for (var i = 0; i < rects.length; i++) { + rects[i].id = i rects[i].reset() } regions = [] @@ -206,17 +209,46 @@ function solve_rects(){ // generate walls from surviving regions // generate ceiling-walls where ceiling has discontinuity + // regions = shuffle( regions.filter(function(r){ return !!r }) ) regions = regions.filter(function(r){ return !!r }) + +// var ty = new tree (regions[0].y.a, [regions[0]]) +// var tx = new tree (regions[0].x.a, ty) +// var ttx, tty +// +// for (var i = 1; i < regions.length; i++) { +// ttx = tx.add (regions[i].x.a, null) +// if (ttx.data) { +// tty = ttx.data.add (regions[i].y.a, null) +// // duplicate polygon? +// if (tty.data) { +// tty.data.forEach(function(yy){ +// if (yy.x.eq(regions[i].x) && yy.y.eq(regions[i].y) ) { +// yy.sides = 0 +// regions[i].sides = 0 +// } +// }) +// } +// else { +// tty.data = [regions[i]] +// } +// } +// else { +// ttx.data = new tree (regions[i].y.a, [regions[i]]) +// } +// } + z = false for (var i = 0; i < regions.length; i++) { ctx.fillStyle = colors[i % colors.length] - regions[i] && regions[i].fill() + regions[i].fill().stroke_sides() } document.getElementById("intersects").innerHTML = regions.join("<br>") } + function sort_rects(){ return rects.sort(function(a,b){ - if (a.x.a <= b.x.a) { + if (a.x.a < b.x.a) { return -1 } if (a.x.a > b.x.a) { @@ -263,5 +295,7 @@ function draw_mouse(){ } } +document.body.addEventListener("mousedown", function(){ z = true }) + </script> </html> |
