Каноническая форма эллипса:
x-x^2/a^2 + y^2/b^2 = 1
, где a
= Xradius и b
= Yradius.Так, например, если вы хотите, чтобы верхняя левая точка прямоугольника на нижней стороне эллипса:
y = Sqrt((1-x^2/a^2)*b^2)
upd: чтобы переместить эллипс в указанную точку XC,YC
, замените каждый x на(x-XC)
и (y-YC)
.так что если вы (в C #) рисуете эллипс в прямоугольнике, то XC = rect.X + a
YC = rect.Y + b
и окончательное уравнение y = Sqrt((1 - Pow(x - rect.X - rect.Width / 2, 2) * Pow(rect.Height / 2, 2)) + rect.Y + rect.Height / 2
... кажется правильным)