Show away tactic

Show dash

Show angle between Mouse and Cat

Show circling

Show escape tactic

Show circling boundary

Show dash boundary

The mouse has escaped!

Move mouse to centre

Show other tactics

Show escape critical region

Clear Traces

O: (0, 0)
R = 1 (slider from -5 to 5)
v_c = 0.0435 (slider from 0 to 0.1, step 1.0E-4)
c = Circle(O, R)
A = Point(c)
Cat = Point(c)
Mouse = PointIn(c)
α = Angle(Mouse, O, Cat)
MClock = If(α > π, true, false)
dv_c = If(MClock, v_c, (-v_c))
dv_m = If(MClock, v_c / 4, ((-v_c)) / 4)
t = 68.1255 (slider from 0 to 100, step 1.0E-4)
i = Segment(O, Mouse)
j = Segment(O, Cat)
d = Circle(O, Mouse)
r = Radius(d)
anim = false
mradunit = UnitVector(Vector[O, Mouse])
β = Angle(Cat, O, Mouse)
SRatio = 4 (slider from 0 to 5, step 0.1)
v_m: v_c / SRatio
ctmunit = UnitVector(Vector[Cat, Mouse])
t_a = 89.68 (slider from 0 to 100, step 0.01)
showaway = false
t_d = 6.13 (slider from 0 to 100, step 0.01)
showdash = false
f = Segment(Cat, O)
g = Segment(O, Mouse)
a = false
circlingboundaryrad: R / SRatio
e = Circle(O, circlingboundaryrad)
dashboundaryrad: (R * (1 - π / SRatio))
h = Circle(O, dashboundaryrad)
t_c = 67.66 (slider from 0 to 100, step 0.01)
showcirc = false
showesc = false
b = false
k = false
tol = 0.1 (slider from 0 to 0.1, step 1.0E-4)
rcritout: circlingboundaryrad - ((circlingboundaryrad - dashboundaryrad) / 2 * tol)
rcritin: ((circlingboundaryrad - dashboundaryrad) / 2 * tol) + dashboundaryrad
dashangle = 3.1066860685499065 rad (slider from 2.9670597283903604 to 3.141592653589793, step 0.01°)
escape = false
text2: "Angle between Mouse and Cat = " + β + ""
m = false
n = Tangent(Cat, c)
D = Point(n)
p = Circle(Cat, D)
q = Line(O, Mouse)
E, F = Intersect(c, q)
s = Tangent(F, c)
f_1 = Line(Mouse, s)
G = Point(f_1)
c_1 = Circle(Mouse, G)
l(x, y) = dashboundaryrad^(2) < x^(2) + y^(2) < circlingboundaryrad^(2)
o = false
B = Intersect(p, n, 2)
pic4 = Mirror(pic3, LineBisector[Cat, D])