Как по координатам прямоугольника получить координаты описанного овала?
есть к примеру прямоугольник, как описать вокруг него овал?Есть ли какая-нибудь библиотека которая имеет методы получения таких координат в формате (x1, y1,x2, y2)?
import tkinter as tk
root = tk.Tk()
canvas = tk.Canvas(root, width=250, height=170, bg='white')
canvas.pack(fill='both', expand=1)
rect = canvas.create_rectangle(100, 30, 50, 100)
root.mainloop()
результат хотел и круг и эллипс через метод create_oval, если эллипс что б его границы(или дуги?) были максимально близки к граням прямоугольника
Ответы (1 шт):
Возьмём простой и логичный случай - соотношение осей эллипса соответствует соотношению сторон прямоугольника (тогда описанный эллипс подобен вписанному).
Если взять квадрат со стороной h
, то описанная вокруг окружность имеет радиус h/sqrt(2)
. Если теперь растянуть квадрат до прямоугольника с шириной w
, то из окружности получится эллипс с полуосями (w/sqrt(2), h/sqrt(2))
- это и есть размер прямоугольного окна, задающего эллипс в create_oval
(x1, y1,x2, y2) =>
cx = (x2+x1)/2
cy = (y2+y1)/2
w = x2-x1
h = y2-y1
create_oval(cx - w/1.414, cy - h/1.414, cx + w/1.414, cy + h/1.414)