Эллипс
			 
			 
			
		
		
		
		Вот нашел формулу  
	Цитата: 
	
	
		| 
			
				 Сообщение от 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 
Что не так? Может я неправильно преобразовал первое выражение?  
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 |