Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.01.10;
Скачать: [xml.tar.bz2];

Вниз

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

 
donar19 ©   (2009-11-19 19:12) [0]

Имеется код на 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.


 
Сергей М. ©   (2009-11-19 19:46) [1]


> Имеется код на 1/8 круга


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


 
donar19 ©   (2009-11-19 19:47) [2]

Да! Потому что обьясняли как делать! А остальное сказали по семетрии.. а я не понимаю как


 
Сергей М. ©   (2009-11-19 19:52) [3]


> Да!


Ай да ты !
Ай да малацца !


> Потому что обьясняли как делать!


В смысле какие буковки тыкать на клавиатуре ?
Или как объясняли ?


> остальное сказали по семетрии


Стесняюсь спросить - "семетрия" это кто ?!


> а я не понимаю


Так ведь объясняли же !
Ты где летал, когда объясняли ?)


 
donar19 ©   (2009-11-19 19:53) [4]

Смешно..


 
Сергей М. ©   (2009-11-19 19:54) [5]

Было бы.
Если бы не было так грустно.


 
donar19 ©   (2009-11-19 19:54) [6]

Я русский, а учусь в школе в Латвии и не всё понимаю, что говорят. А делать надо


 
donar19 ©   (2009-11-19 19:54) [7]

Я русский, а учусь в школе в Латвии и не всё понимаю, что говорят на латышском. А делать надо


 
Сергей М. ©   (2009-11-19 19:56) [8]


> А делать надо


А никто и не против.
Но делать, заметь, надо ТЕБЕ.


 
Сергей М. ©   (2009-11-19 19:57) [9]


> не всё понимаю, что говорят на латышском


Приведенный тобой код тоже, надо понимать, на латышском ?


 
donar19 ©   (2009-11-19 19:57) [10]

Уже на Ты перешли?


 
Сергей М. ©   (2009-11-19 19:59) [11]


> Уже на Ты перешли?


Уже ждешь когда за тебя программу напишут ?


 
donar19 ©   (2009-11-19 20:01) [12]

нет, я этого не просил. Я спросил как это осуществить, какой то материал или пособие или примерно теорию.


 
donar19 ©   (2009-11-19 20:02) [13]

мне для начала надо это понять а не код, книг у нас не продают и учебников нет


 
Eraser ©   (2009-11-19 20:06) [14]

> Я спросил как это осуществить, какой то материал или пособие
> или примерно теорию.

школьный учебник по геометрии.


 
Григорьев Антон ©   (2009-11-19 20:08) [15]

Подсказка: если у нас есть точка (X,Y), то:
1. Симметричная ей относительно вертикальной оси X=Xo точка будет иметь координаты (2*Xo-X,Y)
2. Симметричная ей относительно точки (Xo,Yo) точка будет иметь координаты (2*Xo-X,2*Yo-Y)
3. Точка, симметричная ей относительно прямой, проходящей через точку (Xo,Yo), будет иметь координаты (Xo+Y-Yo,Yo+X-Xo).

Подсказка 2: в вашем случае (Xo,Yo) - это координаты центра окружности.

Итак, формулы для трёх из семи недостающих кусокв окружности я вам дал. Теперь, взяв в руки карандаш и бумагу, вы должны понять, почему формулы именно такие, и тогда вы легко сможете вывести формулы для оставшихся четырёх кусков.


 
donar19 ©   (2009-11-19 20:08) [16]

Eraser
Большое спасибо, он мне поможет учитывая первый опыт в программировании вообще


 
Сергей М. ©   (2009-11-19 20:08) [17]


> надо это понять


"это" - это что ?


 
donar19 ©   (2009-11-19 20:12) [18]

Сергей М.

Программирование в Делфи. Я первый раз открыл делфи и по вашему должен сразу же всё знать и уметь? Форум называется - Начинающим. Не хотите помогать - проходите мимо


 
Игорь Шевченко ©   (2009-11-19 20:12) [19]

Сами мы не местные...


 
donar19 ©   (2009-11-19 20:13) [20]

Григорьев Антон большое спасибо


 
Сергей М. ©   (2009-11-19 20:18) [21]

Аж слеза прошибла ..
Таки захотелось подать.
Жаль что не пятница и не паперть.


 
Sapersky   (2009-11-19 20:19) [22]

По-моему через тригонометрию проще:
http://www.clascalc.ru/Images/sin-circle.gif


 
donar19 ©   (2009-11-19 20:19) [23]

Наверное Вам больше заняться нечем, чем самоутверждаться Online ?


 
Anatoly Podgoretsky ©   (2009-11-19 20:24) [24]

> donar19  (19.11.2009 20:12:18)  [18]

Знать не надо, но и вопрос не по Дельфи, а по геометрии.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2010.01.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.005 c
2-1258470769
valussev@mail.ru
2009-11-17 18:12
2010.01.10
ошибка при запуске с другого пк


15-1257707340
SergP
2009-11-08 22:09
2010.01.10
Реклама. Яндекс Директ и пр...


15-1257540544
TUser
2009-11-06 23:49
2010.01.10
Киев находится на широте Лондона


2-1258550783
dik
2009-11-18 16:26
2010.01.10
Еще раз об отладчике


1-1232982610
Afonya
2009-01-26 18:10
2010.01.10
Чтение данных TStringGrid из другого приложения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский