summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-11-03 12:18:12 -0500
committerJules Laplace <jules@okfoc.us>2014-11-03 12:18:24 -0500
commit4cd1bf2ab9944c1f0782e95b51b0da132909a189 (patch)
tree152d3c2c0147464a664580b8791f5be208cbddd1
parentb5c6adb5fbc7225e7b655f02123d7f0995ae3b46 (diff)
intersect doesnt need clamping
-rw-r--r--public/assets/test/intersect3.html19
1 files changed, 13 insertions, 6 deletions
diff --git a/public/assets/test/intersect3.html b/public/assets/test/intersect3.html
index 13a8024..ed81346 100644
--- a/public/assets/test/intersect3.html
+++ b/public/assets/test/intersect3.html
@@ -118,13 +118,16 @@ function draw (time) {
var closest_intersect, t, min_t = 1
var cursor_copy = cursor.extend_ends(scene.camera.radius)
-hud.innerHTML = cursor_copy.x
-drawPoint(cursor_copy.x, "#ff0")
+ hud.innerHTML = cursor_copy.x
+ drawPoint(cursor_copy.x, "#ff0")
+
Walls.list.forEach(function(wall, i){
wall.get_points(wall_vec)
drawLine(wall_vec.x, wall_vec.y, "#088")
origins.x = cursor_copy.x
+ origins.y = wall_vec.x
+
t = perp(origins, wall_vec) / ( perp(cursor_copy, wall_vec) || 0.0000001 )
intersect.a = cursor_copy.x.a + ( cursor_copy.y.a - cursor_copy.x.a ) * t
intersect.b = cursor_copy.x.b + ( cursor_copy.y.b - cursor_copy.x.b ) * t
@@ -177,9 +180,12 @@ drawPoint(cursor_copy.x, "#ff0")
drawLine(wall_vec.x, wall_vec.y, "rgba(0,255,255,1.0)")
origins.x = cursor.x
+ origins.y = wall_vec.x
+
var new_t = perp(origins, wall_vec) / ( perp(cursor, wall_vec) || 0.0000001 )
var wall_t = perp(origins, cursor) / ( perp(wall_vec, cursor) || 0.0000001 )
- var closest_intersect2 = new vec2()
+
+ var closest_intersect2 = new vec2 ()
closest_intersect2.a = cursor.x.a + ( cursor.y.a - cursor.x.a ) * new_t
closest_intersect2.b = cursor.x.b + ( cursor.y.b - cursor.x.b ) * new_t
@@ -193,6 +199,7 @@ drawPoint(cursor_copy.x, "#ff0")
var aw = angle(closest_wall)
var dd = dot2(diff(closest_wall), diff(cursor))
+// hud.innerHTML += " " + dd + " " + round(deg(aw))
if (dd > 0) {
len *= 1-abs(wall_t)
}
@@ -204,14 +211,14 @@ drawPoint(cursor_copy.x, "#ff0")
len = clamp(len, 0, (1-min_t) * sqrt(dot(cursor, cursor)))
// hud.innerHTML = [ aw ].map(function(n){ return round(deg(n)) })
-// hud.innerHTML = "&nbsp;" + (dd > 0 ? "gt": "lt") + " " + round(len) + " " + (1-min_t) + " " + round((1-min_t)*sqrt(dot2(diff(cursor), diff(cursor))))
+// hud.innerHTML += "__&nbsp;" + (dd > 0 ? "gt": "lt") + " " + round(len) + " " + (1-min_t) + " " + round((1-min_t)*sqrt(dot2(diff(cursor), diff(cursor))))
var end_of_ray = closest_intersect2.clone()
end_of_ray.a += len * cos(aw)
end_of_ray.b += len * sin(aw)
- end_of_ray.a = clamp(end_of_ray.a, wall_vec.x.a, wall_vec.y.a)
- end_of_ray.b = clamp(end_of_ray.b, wall_vec.x.b, wall_vec.y.b)
+// end_of_ray.a = clamp(end_of_ray.a, wall_vec.x.a, wall_vec.y.a)
+// end_of_ray.b = clamp(end_of_ray.b, wall_vec.x.b, wall_vec.y.b)
drawPoint(end_of_ray)
drawLine(closest_intersect2, end_of_ray, "#00f")