Добавил:
Рад, если кому-то помог Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
1
Добавлен:
01.11.2025
Размер:
2.22 Кб
Скачать
#include <iostream>
#include <cmath>
#include <windows.h>
using namespace std;

const double PI = 3.14159265358979323846;

class Point {
private:
    int x, y;
    bool visible;
    char color;
    
public:
    Point(int x = 0, int y = 0, char color = 'W') 
        : x(x), y(y), visible(true), color(color) {
        cout << "Создана точка в координатах (" << x << ", " << y << ")" << endl;
    }
    
    void setPosition(int newX, int newY) {
        x = newX;
        y = newY;
        cout << "Координаты точки изменены на (" << x << ", " << y << ")" << endl;
    }
    
    void setColor(char newColor) {
        color = newColor;
        cout << "Цвет точки изменен на " << newColor << endl;
    }
    
    void show() {
        visible = true;
        cout << "Точка отображена в (" << x << ", " << y 
             << ") цветом " << color << endl;
    }
    
    void hide() {
        visible = false;
        cout << "Точка скрыта" << endl;
    }
    
    bool isVisible() {
        cout << "Точка " << (visible ? "видима" : "невидима") << endl;
        return visible;
    }
    
    void rotate(double angle) {
        double angle_rad = angle * PI / 180.0;
        double newX = x * cos(angle_rad) - y * sin(angle_rad);
        double newY = x * sin(angle_rad) + y * cos(angle_rad);
        x = round(newX);
        y = round(newY);
        cout << "Точка повернута на " << angle << "°. Новые координаты: (" 
             << x << ", " << y << ")" << endl;
    }
    
    int getX() { return x; }
    int getY() { return y; }
};

int main() {
    SetConsoleOutputCP(65001);
    
    Point p(10, 5, 'R');
    
    cout << "=== Работа с точкой на экране ===" << endl;
    
    p.show();
    p.isVisible();
    
    p.rotate(45);
    cout << "Текущие координаты: (" << p.getX() << ", " << p.getY() << ")" << endl;
    
    p.hide();
    p.isVisible();
    
    p.setPosition(20, 30);
    p.setColor('B');
    p.show();
    
    return 0;
}
Соседние файлы в папке Лаба1