![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Спираль
Nat21 © (2002-06-05 22:33:00)Привет всем! Как нарисовать спираль, которая рисуется с определенной скоростью и из центра экрана.
MBo (2002-06-06 13:36:00) [1]спирали бывают разные. вот одна
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if i=0 then
canvas.moveto(x0,y0)
else if (i<(clientheight)) then begin
case i mod 30 of
0..9:canvas.pen.color:=clRed;
10..19:canvas.pen.color:=clGreen;
20..29:canvas.pen.color:=clBlue;
end;
Canvas.LineTo(trunc(x0+i*cos(i/10)/2),trunc(y0+i*sin(i/10)/2));
end;
inc(i);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
x0:=clientwidth div 2;
y0:=clientheight div 2;
end;
Anatoly Podgoretsky (2002-06-06 00:47:00) [2]Насчет скорости неясно, угловая или линейная
SPeller (2002-06-06 00:45:00) [3]А зачем массив точек? Можно без них. Рисовать можно в TBitmap или hDC, а затем их содержимое переносить на экра при перерисовке. Организовать спираль достаточно просто - делаем вращение через sin, cos и при этом постепенно увеличиваем радиус.
agrig (2002-06-05 23:46:00) [4]если на форме - то таймер и уравнение. динамический массив точек, которые соединяются прямыми по сигналу таймера.
если на десктопе - идея таже, но для рисования используй winApi