Как по координатам прямоугольника получить координаты описанного овала?

есть к примеру прямоугольник, как описать вокруг него овал?Есть ли какая-нибудь библиотека которая имеет методы получения таких координат в формате (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 шт):

Автор решения: MBo

Возьмём простой и логичный случай - соотношение осей эллипса соответствует соотношению сторон прямоугольника (тогда описанный эллипс подобен вписанному).

Если взять квадрат со стороной 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)

введите сюда описание изображения

→ Ссылка