Пусть полуоси эллипса a, b
, центральная точка (cx, cy)
и угол поворота fi
.Тогда координаты по окружности эллипса в параметре t
имеют вид:
x = a * Cos(t) * Cos(fi) - b * Sin(t) * Sin(fi) + cx
y = a * Cos(t) * Sin(fi) + b * Sin(t) * Cos(fi) + cy
Чтобы получить экстремальные точки, мы можем дифференцировать координаты по t
и установить производные в ноль
a * Sin(t) * Cos(fi) = - b * Cos(t) * Sin(fi) // dx/dt
a * Sin(t) * Sin(fi) = b * Cos(t) * Cos(fi) // dy/dt
tg(t) = -b/a * Tg(fi)
t(l,r) = Pi * k + Atan(-b/a * Ttg(fi) //left and right, k=0,1
tg(t) = b/a * Ctg(fi)
t(t,b) = Pi * k + Atan(b/a * Ctg(fi)) //top and bottom, k = 0,1
ytop = a * Cos(t(t)) * Sin(fi) + b * Sin(t(t)) * Cos(fi) + cy
and so on
реальный примердля a: 200; b: 100; fi: Pi/6 CW;
, сгенерированного быстрым код Delphi