Вычислить время, когда движущийся шар сталкивается с движущейся линией / многоугольником (2D)

У меня есть многоугольник, и внутри него движущийся шар. Мяч должен отскочить назад, если он достигнет границы.

Мое текущее «решение»: я делю многоугольник на линии и вычисляю, когда мяч попадает в движущуюся линию

все переменные:

a = length of a
b = length of b
c = length of c
ax = x position of A
ay = y position of A
bx = x position of B
by = y position of B
cx = x position of C
cy = y position of C
vax = speed of A on the x-axis
vay = speed of A on the y-axis
vbx = speed of B on the x-axis
vby = speed of B on the y-axis
vcx = speed of C on the x-axis
vcy = speed of C on the y-axis
h = height (equals r, because it collides when h is r)
r = radius
t = time (one time unit equals 1 frame. not relevant)
axc = x positon of A at the collision
ayc = y positon of A at the collision
bxc = x positon of B at the collision
byc = y positon of B at the collision
cxc = x positon of C at the collision
cyc = y positon of C at the collision

Рассчитайте положение столкновения всех точек:

axc:=ax+vax*t ayc:=ay+vay*t

bxc:=bx+vbx*t byc:=by+vby*t

cyc:=cy+vcy*t cxc:=cx+vcx*t

Рассчитать длину всех вершин

a:=√((axc-cxc)^(2)+(ayc-cyc)^(2))

b:=√((bxc-cxc)^(2)+(byc-cyc)^(2))

c:=√((axc-bxc)^(2)+(ayc-byc)^(2))

Рассчитать ч

h=((√(2*(a^(2)*b^(2)+b^(2)*a^(2)+c^(2)*a^(2))-(a^(4)+b^(4)+c^(4))))/(2*c))

Решить для т

solve(h=((√(2*(a^(2)*b^(2)+b^(2)*a^(2)+c^(2)*a^(2))-(a^(4)+b^(4)+c^(4))))/(2*c)), t)

BUUUUUT: мой калькулятор (Ti-Nspire CX CAS) падает. И математика Microsoft занимает слишком много времени (я подсчитываю прямо сейчас ... в течение 1 часа и до сих пор ничего ...)

Так что ... ПОМОГИТЕ!

(Не подвергайте сомнению мои навыки рисования)

Ответы на вопрос(1)

Ваш ответ на вопрос