summaryrefslogtreecommitdiff
path: root/rectangles.html
diff options
context:
space:
mode:
Diffstat (limited to 'rectangles.html')
-rw-r--r--rectangles.html42
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>