Помощь - Поиск - Пользователи - Календарь
Полная версия: Menja Ozadachili Pered Sesiej
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Delphi
LavR
Изобразить синусоиду, расположенную по высоте в центре PaintBox от его левой границы до правой, и равномерно движущуюся по горизонтали.

знаю одно 4то синусойду таам взятй периуд от 0 до пи какби такая кривая
строитй по то4кам какби заганяя в масив и затем обработку онпаинт есё

Вот помогите люди добрие я уже не могу придуматй как ето зделатй


Транслит для кого придумали ?
Извинити не заметил
volvo
Ты бы вот тут посмотрел:
http://programming.com.ua/doc/5/les-18.html
Цитата
Рисование на форме или на компоненте PaintBox. Генератор колебаний. Пример
LavR
Цитата(volvo @ 14.06.05 11:35)
Ты бы вот тут посмотрел:
http://programming.com.ua/doc/5/les-18.html


да я питался ету програмку переделатй но у меня ни4его не полу4илосй 

ету кривую (синусойду) похожая на букву "С" нада заставитй передвигатйса
зна4ет все то4ки нада загнатй в масив а там есё нада будет создаватй свой тип переменой или рецорд
LavR
Код
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, ExtCtrls, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   PaintBox1: TPaintBox;
   Timer1: TTimer;
   Label1: TLabel;
   procedure Button1Click(Sender: TObject);
   procedure FormCreate(Sender: TObject);
   procedure Timer1Timer(Sender: TObject);
   procedure PaintBox1Paint(Sender: TObject);

 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}
//const NsinusPixels = 165

type PixelsCord = record
    y,x:integer;
    end;
Var Mas:array[1..120] of PixelsCord;

procedure TForm1.Button1Click(Sender: TObject);
var j,z,w:integer;
begin
z:=(form1.PaintBox1.Height)div 2;
w:=(form1.PaintBox1.width)div 2;

form1.PaintBox1.Canvas.MoveTo(z,0);
form1.PaintBox1.Canvas.LineTo(z,z*2);

form1.PaintBox1.Canvas.MoveTo(0,w);
form1.PaintBox1.Canvas.LineTo(w*2,w);

form1.PaintBox1.Canvas.MoveTo(0,0);
form1.PaintBox1.Canvas.LineTo(0,w*2);

form1.PaintBox1.Canvas.MoveTo(0,0);
form1.PaintBox1.Canvas.LineTo(z*2,0);

form1.PaintBox1.Canvas.MoveTo(0,w*2);
form1.PaintBox1.Canvas.LineTo(z*2,w*2);

form1.PaintBox1.Canvas.MoveTo(z*2,0);
form1.PaintBox1.Canvas.LineTo(w*2,z*2);
end;


procedure TForm1.FormCreate(Sender: TObject);
var x,y,i,z,w:integer;
begin
i:=1;
for x:=40 to 160 do
begin
y:=Round(Sin(pi*x/100)*120)+((form1.PaintBox1.Height)div 2);
mas[i].x:=x+60;
mas[i].y:=y;
inc(i);
end

end;



procedure TForm1.Timer1Timer(Sender: TObject);
var a,z,i:integer;
begin
a:=strtoint(form1.Label1.Caption);
inc(a);
form1.Label1.Caption:=inttostr(a);
for z:=1 to 120 do
form1.PaintBox1.Canvas.Pixels[(mas[z].x-10),(mas[z].y)]:=form1.PaintBox1.Color;
for z:=1 to 120 do
begin
form1.PaintBox1.Canvas.Pixels[(mas[z].x),(mas[z].y)]:=clBlack;
mas[z].x:=mas[z].x+10;

end;
end;

procedure TForm1.PaintBox1Paint(Sender: TObject);
var z:integer;
begin

for z:=1 to 120 do
begin
form1.PaintBox1.Canvas.Pixels[(mas[z].x-10),(mas[z].y)]:=clBlack;
end;
end;

end.

спасибо себе любимому. Всё дапёр я посидел подумал
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.