in WhackAMole.UWPClient/Controls/MoleControl.cs [274:312]
private void LayoutDisplayPanel()
{
if (_displayTransform == null || _displayBorder == null || _mole == null)
return;
int angle = 0;
double offSetX = _displayBorder.ActualWidth - _mole.ActualWidth;
var align = DisplayAlignment;
switch (align)
{
case MoleAlignment.BottomRight:
offSetX = 0;
angle = 315;
break;
case MoleAlignment.BottomLeft:
_displayTransform.CenterX = 1;
angle = 225;
break;
case MoleAlignment.TopRight:
offSetX = 0; ;
angle = 45;
break;
case MoleAlignment.TopLeft:
_displayTransform.CenterX = 1;
angle = 135;
break;
default:
break;
}
double radius = _mole.ActualWidth + 10;
var targetPoint = new Point(((Math.Cos(angle * Math.PI / 180) * radius)) , ( -Math.Sin(angle*Math.PI / 180) * radius));
_displayTransform.TranslateX = targetPoint.X - offSetX;
_displayTransform.TranslateY = targetPoint.Y;
}