Форум: "Начинающим";
Текущий архив: 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