Mercurial Hosting > traffic-intelligence
changeset 1217:5038c357b57f
updating code for direct computation (very slow solver)
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Tue, 16 May 2023 22:12:39 -0400 |
parents | 8356e15fd691 |
children | 1f0b1fc172f8 |
files | trafficintelligence/moving.py |
diffstat | 1 files changed, 22 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/trafficintelligence/moving.py Sun May 07 16:24:27 2023 -0400 +++ b/trafficintelligence/moving.py Tue May 16 22:12:39 2023 -0400 @@ -424,11 +424,17 @@ p0_x, p0_y = x_bbox_2[i], y_bbox_2[i] p1_x, p1_y = x_bbox_1[line[j][0]], y_bbox_1[line[j][0]] p2_x, p2_y = x_bbox_1[line[j][1]], y_bbox_1[line[j][1]] - f = (p2_x - p1_x) * (p0_y - p1_y) - (p0_x - p1_x) * (p2_y - p1_y) + p0_x_t = p0_x + v_2_x * t + p0_y_t = p0_y + v_2_y * t + p1_x_t = p1_x + v_1_x * t + p1_y_t = p1_y + v_1_y * t + p2_x_t = p2_x + v_1_x * t + p2_y_t = p2_y + v_1_y * t + f = (p2_x_t - p1_x_t) * (p0_y_t - p1_y_t) - (p0_x_t - p1_x_t) * (p2_y_t - p1_y_t) collision_t = solve(f, t, set=True, dict=True) if collision_t and collision_t[0][t] >= 0: collision_t = collision_t[0][t] - print(f'collision_t: {collision_t} >>>>>>>>>') + #print(f'collision_t: {collision_t} >>>>>>>>>') x_bbox_1_new, y_bbox_1_new = NewFourPoints(bbox_1, collision_t, v_1_x, v_1_y) x_bbox_2_new, y_bbox_2_new = NewFourPoints(bbox_2, collision_t, v_2_x, v_2_y) p0_x, p0_y = x_bbox_2_new[i], y_bbox_2_new[i] @@ -439,30 +445,35 @@ if min_x == max_x: if min_y <= p0_y <= max_y: t_total.append(collision_t) - elif min_y == max_y: if min_x <= p0_x <= max_x: t_total.append(collision_t) - else: if min_x <= p0_x <= max_x or min_y <= p0_y <= max_y: t_total.append(collision_t) - x_temps = x_bbox_2 - x_bbox_2 = x_bbox_1 - x_bbox_1 = x_temps - # print(f'Change bounding box1 and box2 >>>>>>>>>>>>>>>>>>>\n\n\n') + + x_temps = x_bbox_2 + x_bbox_2 = x_bbox_1 + x_bbox_1 = x_temps + # print(f'Change bounding box1 and box2 >>>>>>>>>>>>>>>>>>>\n\n\n') for i in range(4): for j in range(4): p0_x, p0_y = x_bbox_2[i], y_bbox_2[i] p1_x, p1_y = x_bbox_1[line[j][0]], y_bbox_1[line[j][0]] p2_x, p2_y = x_bbox_1[line[j][1]], y_bbox_1[line[j][1]] - f = (p2_x - p1_x) * (p0_y - p1_y) - (p0_x - p1_x) * (p2_y - p1_y) + p0_x_t = p0_x + v_2_x * t + p0_y_t = p0_y + v_2_y * t + p1_x_t = p1_x + v_1_x * t + p1_y_t = p1_y + v_1_y * t + p2_x_t = p2_x + v_1_x * t + p2_y_t = p2_y + v_1_y * t + f = (p2_x_t - p1_x_t) * (p0_y_t - p1_y_t) - (p0_x_t - p1_x_t) * (p2_y_t - p1_y_t) collision_t = solve(f, t, set=True, dict=True) if collision_t and collision_t[0][t] >= 0: collision_t = collision_t[0][t] # print(f'collision_t: {collision_t} >>>>>>>>>') - x_bbox_1_new, y_bbox_1_new = NewFourPoints(bbox_1, collision_t) - x_bbox_2_new, y_bbox_2_new = NewFourPoints(bbox_2, collision_t) + x_bbox_1_new, y_bbox_1_new = NewFourPoints(bbox_1, collision_t, v_1_x, v_1_y) + x_bbox_2_new, y_bbox_2_new = NewFourPoints(bbox_2, collision_t, v_2_x, v_2_y) p0_x, p0_y = x_bbox_2_new[i], y_bbox_2_new[i] p1_x, p1_y = x_bbox_1_new[line[j][0]], y_bbox_1_new[line[j][0]] p2_x, p2_y = x_bbox_1_new[line[j][1]], y_bbox_1_new[line[j][1]]