Ktam3874/pitx software guide – Kontron KTAM3874-pITX User Manual
Page 186

KTD-S0057-I
Page 182 Linux® Programming Examples (DebianTM)
KTAM3874/pITX Software Guide
if (angleToCenter < Pi && angleToCenter > Pi / 4)
{
// Rotate left
angle += (angle < -Pi / 2) ? 0.25 : -0.25;
}
else if (angleToCenter >= Pi && angleToCenter < (Pi + Pi / 2 + Pi / 4))
{
// Rotate right
angle += (angle < Pi / 2) ? 0.25 : -0.25;
}
}
else if (::sin (angle) < 0)
{
angle += 0.25;
}
else if (::sin(angle) > 0)
{
angle -= 0.25;
}
// Try not to crash with any other mice
QList
<< mapToScene (0, 0)
<< mapToScene (-30, -50)
<< mapToScene (30, -50));
foreach (QGraphicsItem *item, dangerMice)
{
if (item == this)
continue;
QLineF lineToMouse (QPointF (0, 0), mapFromItem (item, 0, 0));
qreal angleToMouse = ::acos (lineToMouse.dx () / lineToMouse.length ());
if (lineToMouse.dy () < 0)
angleToMouse = TwoPi - angleToMouse;
angleToMouse = normalizeAngle ((Pi - angleToMouse) + Pi / 2);
if (angleToMouse >= 0 && angleToMouse < Pi / 2)
{
// Rotate right
angle += 0.5;
}
else if (angleToMouse <= TwoPi && angleToMouse > (TwoPi - Pi / 2))
{
// Rotate left
angle -= 0.5;
}
}