Позиции частиц, которые находятся на орбите, можно задать одной строкой кода каждая:
Предположим, что p1, p2, & p3 - это Vector2s, а p2 & p3 - на орбите p1.
p2 = Vector2.Transform(p2 - p1, Matrix.CreateRotationZ(rotationChangeP2)) + p1;
p3 = Vector2.Transform(p3 - p1, Matrix.CreateRotationZ(rotationChangeP3)) + p1;
Метод Matrix.Create ... () вызовет для вас две триггерные функции.
редактировать. структуры и методы Matrix & Vector2 специфичны для XNA, но включены сюда, потому что это то, с чем ОП пометил свой Q.