![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как нарисовать круг в делфи по пикселям?
donar19 © (2009-11-19 19:12:00)Имеется код на 1/8 круга. А как написать ещё 7 шагов чтобы получился круг?
type
TForm1 = class(TForm)
Edit1: TEdit;
Image1: TImage;
StringGrid1: TStringGrid;
Label1: TLabel;
procedure FormCreate(Sender: TObject);
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Rinkis(xc,yc,r: integer);
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
StringGrid1.Cells[0,0]:='k' ;
StringGrid1.Cells[1,0]:='Xk' ;
StringGrid1.Cells[2,0]:='Yk' ;
StringGrid1.Cells[3,0]:='Pk' ;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Label1.Caption:=IntToStr(x)+', '+IntToStr(y);
end;
procedure TForm1.Rinkis(xc,yc,r: integer);
var xk,yk,k,pk: integer;
begin
//1.solis
k:=0;
xk:=0;
yk:=R;
//2.solis
pk:=1-r;
//3.solis
while xk<yk do
begin
k:=k+1;
if pk<0 then
begin
xk:=xk+1;
pk:=pk+2*xk+1;
end
else
begin
xk:=xk+1;
yk:=yk-1;
pk:=pk+2*xk+1-2*yk;
end;
Image1.Canvas.Pixels[xc+xk,yc+yk]:=clBlue;
StringGrid1.Cells[0,k+1]:=IntToStr(k);
StringGrid1.Cells[1,k+1]:=IntToStr(xk);
StringGrid1.Cells[2,k+1]:=IntToStr(yk);
StringGrid1.Cells[3,k+1]:=IntToStr(pk);
end;
end;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Rinkis(X,Y,StrToInt(Edit1.Text));
end;
end.
donar19 (2009-11-19 19:53:00) [21]Смешно..
Сергей М. (2009-11-19 19:52:00) [22]
> Да!
Ай да ты !
Ай да малацца !
> Потому что обьясняли как делать!
В смысле какие буковки тыкать на клавиатуре ?
Или как объясняли ?
> остальное сказали по семетрии
Стесняюсь спросить - "семетрия" это кто ?!
> а я не понимаю
Так ведь объясняли же !
Ты где летал, когда объясняли ?)
donar19 (2009-11-19 19:47:00) [23]Да! Потому что обьясняли как делать! А остальное сказали по семетрии.. а я не понимаю как
Сергей М. (2009-11-19 19:46:00) [24]
> Имеется код на 1/8 круга
Стесняюсь спросить - и откуда же он у тебя заимелся ?
Неужели сам написал ?!