​
Out[]=
This is a very nice problem with familiar and simple geometric objects. GeometricScene and FindGeometricConjectures automatically finds the critical steps using angle chasing, leading to the conclusion that triangle OTR (hatch filled) is isosceles. On the other hand, once I have the result from GeometricScene, which helps me understand the dynamic of the problem, I generate the beginning animation by simple parametric functions.

Use GeometricScene

Because ABCD is simply a parallelogram, I prefer just give it fixed coordinate on each vertex. This prevents ABCD being any visually unpleasant shape. Let D at origin and C = {2,0} and angle ADC = θ. Thus A and B is found at
ptA[θ_]:=1.3*{Cos[θ],Sin[θ]};​​ptB[θ_]:={2,0}+1.3*{Cos[θ],Sin[θ]};
Just follow the problem to construct a GeometricScene. Probably there are more than one way to express it. Here is the version I am using without showing explicitly the circle ω. This is fine because we eventually want to show the distance from O to R is same as OC or OT,
scene=RandomInstance[​​GeometricScene[{aptA[π/2.5],b->ptB[π/2.5],c{2,0},d{0,0},x,o,r,t},{​​Polygon[{a,b,c,d}],​​Line[{a,t,r}],​​Line[{b,o,r}],​​GeometricAssertion[{d,t,o,c},"Collinear"],​​EuclideanDistance[d,o]EuclideanDistance[b,o],​​EuclideanDistance[c,o]EuclideanDistance[t,o],​​xMidpoint[{a,c}],​​Style[Line[{x,o}],Dashed],​​Style[Line[{b,d}],Dashed]​​}​​]​​]
To extract angular equality with various length, we need a pattern match with arbitrary number of repetition given a specific head. It is essential to use HoldPattern function here because expressions like Equal[_ , _] will be evaluated to True before entering pattern match. PatternSequence[__PlanarAngle] handles multiple occurrences of expression with head PlanarAngle. The following two conclusion are the critical steps to prove triangle OTR being isosceles, which in turn confirms OT = OR = OC. This is same to say R is on the circle centered at O with radius equal to OC.
In[]:=
FindGeometricConjectures[​​scene,​​_?(MatchQ[HoldPattern[Equal[PatternSequence[__PlanarAngle]]]])]["Conclusions"]//Column
Out[]=
PlanarAngle[{b,a,t}]PlanarAngle[{d,t,a}]PlanarAngle[{o,t,r}]PlanarAngle[{t,o,x}]PlanarAngle[{t,r,o}]PlanarAngle[{x,o,b}]
PlanarAngle[{c,o,x}]PlanarAngle[{d,t,r}]PlanarAngle[{o,t,a}]PlanarAngle[{x,o,r}]
PlanarAngle[{a,b,o}]PlanarAngle[{c,o,b}]PlanarAngle[{t,o,r}]
PlanarAngle[{a,b,d}]PlanarAngle[{d,b,o}]PlanarAngle[{t,d,b}]
PlanarAngle[{x,a,d}]PlanarAngle[{x,c,b}]
PlanarAngle[{c,x,o}]PlanarAngle[{x,a,t}]
PlanarAngle[{c,o,r}]PlanarAngle[{t,o,b}]
PlanarAngle[{b,a,x}]PlanarAngle[{o,c,x}]
PlanarAngle[{b,a,d}]PlanarAngle[{o,c,b}]
PlanarAngle[{a,d,b}]PlanarAngle[{c,b,d}]
PlanarAngle[{a,b,c}]PlanarAngle[{t,d,a}]
The first equal relation is actually what we need. It comes from XO being the medial line of triangle ACT and given XO is line segment bisector of DXB. The conjecture indicates that OTR is indeed isosceles triangle.
In[]:=
FindGeometricConjectures[scene]
Because we know XO is a midsegment and it is perpendicular to DXB, it immediately follows line ATR is perpendicular to line DXB, which is needed to complete the final proof.
You can follow the rest of the proof from the solution manual from the contest

Create Animation

After I have inspect the construction of the geometric problem closely with GeometricScene, I found it is quite straightforward to any valid configuration directly with simple trigonometry. I find computational thinking and using WL in two directions often very helpful to understand a problem.
Given any θ = angle ADC and fixed length of AD and CD, I can determine ABCD by
In[]:=
abcd[θ_]:=Parallelogram[{0,0},{{2,0},ptA[θ]}]
The next step is to determine O. DXO is a right triangle from the fact that X is the mid point of BD (center of the parallelogram) and BOD is isosceles. Also given O is on the horizontal axis, its location can be directly found with secant of angle BDC
The radius of the circle ω is
T is the the reflection of C wrt O
Some utility function to create label
Given four points, the following function finds the intersection of the segments
R is the intersection of AT and BO
Check if R is always on the circle ω by changing θ
(*converted to literals/run notebook to generate the animation again*)

Summary

◼
  • Use GeometricScene to quickly construct the visual representation from the problem
  • ◼
  • Use FindGeometricConjectures to find useful hints
  • ◼
  • Parametric description is useful to understand the dynamic of geometry problem