Fix critical bug in intersection computation

This commit is contained in:
Shaunak Kishore
2015-09-10 01:47:00 -04:00
parent c865a8ff7d
commit 1a00fcb6b7

View File

@ -306,8 +306,8 @@ function extract_stroke(paths, endpoint_map, bridge_adjacency,
var diff1 = Point.subtract(segment1[1], segment1[0]);
var diff2 = Point.subtract(segment2[1], segment2[0]);
var s = (-diff1[1]*(segment1[0][0] - segment2[0][0]) + diff1[0]*(segment1[0][1] - segment2[0][1]))/(-diff2[0]*diff1[1] + diff1[0]*diff2[1]);
var t = ( diff2[0]*(segment1[0][0] - segment2[0][0]) - diff2[1]*(segment1[0][1] - segment2[0][1]))/(-diff2[0]*diff1[1] + diff1[0]*diff2[1]);
var s = (diff1[0]*(segment1[0][1] - segment2[0][1]) - diff1[1]*(segment1[0][0] - segment2[0][0]))/(diff1[0]*diff2[1] - diff1[1]*diff2[0]);
var t = (diff2[0]*(segment1[0][1] - segment2[0][1]) - diff2[1]*(segment1[0][0] - segment2[0][0]))/(diff1[0]*diff2[1] - diff1[1]*diff2[0]);
if (0 < s && s < 1 && 0 < t && t < 1) {
return [segment1[0][0] + t*diff1[0], segment1[0][1] + t*diff1[1]];