Эллипс
Вот нашел формулу
Цитата:
Сообщение от wikipedia.org

при 0 < b ≤ a. В этом случае величины a и b — соответственно, большая и малая полуоси эллипса.
|
Вот так я преобразовал:
Код:
function Ellipse(X, A, B: Integer): Integer;
var
RealA, RealB: Integer;
begin
if A < B then
begin
RealA:=B;
RealB:=A;
end
else
begin
RealA:=A;
RealB:=B;
end;
Result:=Round(Sqrt(RealB*RealB - (X*X*RealB*RealB)/(RealA*RealA)));
end;
Но почему то когда хотел сделать так
Код:
var
i: Integer;
begin
for i:=Image1.Width div 2 to Image1.Width do
Image1.Canvas.Pixels[i, Image1.Height div 2 + Ellipse(i, Image1.Width div 2, Image1.Height div 2)]:=clBlack;
end;
Вылазит ошибка Invalid Floating Point Operation
Что не так? Может я неправильно преобразовал первое выражение?
__________________
Что делать, когда сломался комп:
1. Если вы юзер - делать ноги.
2. Если ремонтник - делать деньги.
3. Если вы программист - делать вид, что так было задумано.
|