Как вводить стороны с клавиатуры?
Составил програму где нужен треугольник со сторонами a b и c. Можно ли сделать так чтобы все стороны вводить с клавиатуры?
from PIL import Image,ImageDraw
img = Image.new('RGB', (400, 400))
draw = ImageDraw.Draw(img)
draw.polygon((200,100,100,300,300,300),fill ='white')
draw.text((150, 170), 'a')
draw.text((200, 310), 'b')
draw.text((250,170), 'c')
img.show('triygolnik.png')
Ответы (1 шт):
Автор решения: Кирилл Семенченко
→ Ссылка
# Импортируем модули для работы с изображениями и математикой
from PIL import Image, ImageDraw
from math import sin, cos, acos
# Запрашиваем у пользователя длины сторон треугольника
a = int(input('Введите длину стороны a: '))
b = int(input('Введите длину стороны b: '))
c = int(input('Введите длину стороны c: '))
# Создаем новое изображение
img = Image.new('RGB', (400, 400))
draw = ImageDraw.Draw(img)
# Вычисляем угол alpha между стороной a и осью абсцисс
alpha = acos((a ** 2 + b ** 2 - c ** 2) / (2 * a * b))
# Вычисляем координаты углов треугольника
x1, y1 = 0, 0
x2, y2 = b, 0
x3, y3 = a * cos(alpha), a * sin(alpha)
# Рисуем треугольник с заданными сторонами
draw.polygon((x1, y1, x2, y2, x3, y3), fill='white')
# Координаты для имен сторон
x_side1 = (x1 + x2) / 2
y_side1 = (y1 + y2) / 2
x_side2 = (x1 + x3) / 2
y_side2 = (y1 + y3) / 2
x_side3 = (x2 + x3) / 2
y_side3 = (y2 + y3) / 2
draw.text((x_side1, y_side1), 'a')
draw.text((x_side2, y_side2), 'b')
draw.text((x_side3, y_side3), 'c')
# Отображаем изображение
img.show('triygolnik.png')