Построить систему классов для описания плоских геометрических фигур: круг, квадрат, прямоугольник. Предусмотреть методы для создания объектов, перемещения на плоскости, изменения размеров и вращения на заданный угол. Написать программу, демонстрирующую работу с этими классами. Программа должна содержать меню, позволяющее осуществить проверку всех методов классов
Начнем с класса "Круг". В нем будет метод для создания объекта, который будет принимать радиус круга и устанавливать его. Здесь же мы добавим методы для перемещения и изменения размера.
```python
class Circle:
def __init__(self, radius):
self.radius = radius
def move(self, x, y):
print(f"Перемещение круга на координаты ({x}, {y})")
def resize(self, scale):
self.radius *= scale
print(f"Изменение размера круга на коэффициент {scale}")
def rotate(self, angle):
print(f"Вращение круга на угол {angle} градусов")
```
Затем создадим класс "Квадрат". Как и в случае с кругом, у него будет метод для создания объекта, который будет принимать размер стороны квадрата и устанавливать его. Также мы добавим методы для перемещения, изменения размера и вращения.
```python
class Square:
def __init__(self, side_length):
self.side_length = side_length
def move(self, x, y):
print(f"Перемещение квадрата на координаты ({x}, {y})")
def resize(self, scale):
self.side_length *= scale
print(f"Изменение размера квадрата на коэффициент {scale}")
def rotate(self, angle):
print(f"Вращение квадрата на угол {angle} градусов")
```
Наконец, создадим класс "Прямоугольник". У него также будет метод для создания объекта, который будет принимать ширину и высоту прямоугольника и устанавливать их. Мы также добавим методы для перемещения, изменения размера и вращения.
```python
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
def move(self, x, y):
print(f"Перемещение прямоугольника на координаты ({x}, {y})")
def resize(self, scale):
self.width *= scale
self.height *= scale
print(f"Изменение размера прямоугольника на коэффициент {scale}")
def rotate(self, angle):
print(f"Вращение прямоугольника на угол {angle} градусов")
```
Теперь у нас есть классы для каждой из геометрических фигур, и у них есть методы для выполнения необходимых операций.
Далее, нам нужно написать программу, чтобы продемонстрировать работу с этими классами. Мы можем создать меню, которое позволит пользователю выбрать одну из фигур и выполнить операции над ней.
```python
def main():
# Создаем экземпляры классов
circle = Circle(5)
square = Square(10)
rectangle = Rectangle(8, 6)
while True:
print("Меню:")
print("1. Работа с кругом")
print("2. Работа с квадратом")
print("3. Работа с прямоугольником")
print("4. Выход")
choice = input("Выберите опцию: ")
if choice == "1":
print("Опции круга:")
print("1. Перемещение")
print("2. Изменение размера")
print("3. Вращение")
print("4. Назад")
option = input("Выберите опцию: ")
if option == "1":
x = int(input("Введите координату x: "))
y = int(input("Введите координату y: "))
circle.move(x, y)
elif option == "2":
scale = float(input("Введите коэффициент масштабирования: "))
circle.resize(scale)
elif option == "3":
angle = float(input("Введите угол поворота в градусах: "))
circle.rotate(angle)
elif option == "4":
continue
elif choice == "2":
print("Опции квадрата:")
# То же самое для квадрата
pass
elif choice == "3":
print("Опции прямоугольника:")
# То же самое для прямоугольника
pass
elif choice == "4":
break
else:
print("Неверная опция. Попробуйте еще раз.")
if __name__ == "__main__":
main()
```
Теперь мы можем запустить программу и выбрать фигуру, с которой мы хотим работать, а затем выбрать опцию, чтобы выполнить операцию над этой фигурой.
Надеюсь, это поможет вам понять создание системы классов для работы с геометрическими фигурами в плоскости. Если у вас возникли вопросы, пожалуйста, спросите!