Using RegionNearest
This approach should work regardless of whether the triangle is filled or not. Here, we will represent the triangle unfilled, i.e. as a one-dimensional region, r1
, a line, embedded in a plane.
r1 = Line[{{0, 0}, {3, 1}, {2, 0}, {0, 0}}];
RegionDimension[r1]
RegionEmbeddingDimension[r1]
1
2
Get the radius of a circle, with the triangle centroid as center, that intersects the farthest vertex of the triangle.
c = RegionCentroid[r1]; (* the gray point *)
radius = Max[EuclideanDistance[c, #] & /@ {{0, 0}, {3, 1}, {2, 0}}];
Animate a black point going around the circle.
And display a (red) point on the triangle that is currently nearest to the black point on the circle.
Animator[Dynamic[n], {0, N[2 Pi], .01}]
Graphics[{r1, AbsolutePointSize[10],
Gray, Point[c],
Black, Dynamic@ Point[d = radius {Cos[n], Sin[n]} + c],
{Red, Dynamic@Point[RegionNearest[r1, d]]},
{Dashed, Circle[c, radius]}}]