타원 방정식을 이용해서 타원을 그려봤습니다.
F1, F2 와 P 세개의 점을 가지고, 중심점(C)과 장축(a), 단축(b), 그리고 각도를 구합니다. 그리고 Graphics.drawEllipse() 메소드를 이용해서 타원을 그립니다. 이때 Graphics.drawEllipse()의 좌표는 타원의 중심점이 아닌 좌상단이 기준이라는 것에 주의합니다.
참고 링크: Elements of an ellipse
코드가 길어져서, 핵심 코드 부분만 발췌했습니다.
F1, F2, P는 MovieClip이고, p, f1, f2, c는 Point 입니다.
p.x = P.x;
p.y = P.y;
f1.x = F1.x;
f1.y = F1.y;
f2.x = F2.x;
f2.y = F2.y;
c.x = F1.x + (F2.x - F1.x) / 2;
c.y = F1.y + (F2.y - F1.y) / 2;
l1 = Point.distance(f1, p);
l2 = Point.distance(f2, p);
f = Point.distance(f1, c);
a = (l1 + l2) / 2;
b = Math.sqrt(a * a - f * f);
angle = Math.atan2( (f2.y - f1.y), (f2.x - f1.x) );
ellipse.x = c.x;
ellipse.y = c.y;
ellipse.rotation = angle / Math.PI * 180;
g.clear();
g.lineStyle(2, 0x6699FF);
g.drawEllipse(-a, -b, 2*a, 2*b);
g.endFill();