Как мне правильно двигать точку на декартовых координатах по окружности?
Просто передвиньте начало координат во вторую точку.
Для размышлений:
Начало координат это (0;0). Поворот это:x = (x-0)*cos(a) - (y-0)*sin(a) + 0
y = (x-0)*sin(a) + (y-0)*cos(a) + 0
Дальше совсем чуть-чуть подумайте
Я делал вращение Луны вокруг Земли, одновременно с вращением Земли вокруг Солнца, поэтому подскажу.
Вот вращение Луны относительно Земли. Разберитесь, вроде должно быть все понятно.
xx и yy - координаты Луны// TrackBar1->Position — скорость вращения. Не обращайте внимания. Можете поставить 1.
xx = xx * cos(M_PI / 31.05819323 * TrackBar1->Position) + yy * sin(M_PI / 31.05819323 * TrackBar1->Position);

yy = -xx * sin(M_PI / 31.05819323 * TrackBar1->Position) + yy * cos(M_PI / 31.05819323 * TrackBar1->Position);

Image1->Canvas->Pen->Color = clGray;
Image1->Canvas->Brush->Color = clGray;

Image1->Canvas->Ellipse(
   width_window / 2 - earth_xx - xx - radius_moon, 
   height_window / 2 - earth_yy - yy - radius_moon, 
   width_window / 2 - earth_xx - xx + radius_moon, 
   height_window / 2 - earth_yy - yy + radius_moon
);