Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как нарисовать круг в делфи по пикселям?


Страницы:   1 2

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 круга


Стесняюсь спросить - и откуда же он у тебя заимелся ?
Неужели сам написал ?!


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо