Условие перемещения фигуры по периметру графического окна

проблема такова, не могу подобрать необходимые условия для того, чтобы фигуры в консольном окне перемещались по периметру этого окна по часовой стрелке

 void move()
{   // x, y - координаты начала отрисовки, dx, dy - шаг для перемещения, Pix - переменная, где хранится размерность графического окна, r - радиус (так как я рисую окружности и треугольники)
    x += dx;
    y += dy;
    if (x >= (Pix - r)) 
    {
        if (dy == 0) { y -= dy; dx = -dy; dy = 0; }
    }
    
    if (x <= 5)
    {
        if (dy == 0) { x -= dx; dy = dx; dx = 0; }
    }
    if (y <= 5)
    {
        if (dx == 0) { y -= dy; dx = -dy; dy = 0; }
    }
}

Это моя лучшая версия, с данным кодом фигуры двигаются от верхнего левого угла в верхний правый и останавливаются, более никаких идей нет.


Ответы (0 шт):