
21.02.2011, 00:21
|
 |
Активный
|
|
Регистрация: 31.03.2009
Адрес: Украина, г.Днепропетровск
Сообщения: 324
Версия Delphi: Delphi7
Репутация: 3877
|
|
Я бы лопасти нарисовал в общ. виде так:
Код:
Const
N = 3; // к-во лопастей
Xo = 150; // Центр вентилятора
Yo = 150; // Центр вентилятора
R = 100; // Радиус лопасти
v = 20; // Толщина лопасти
Var
M1, M2: TPoint;
W, u: Real;
procedure TForm1.FormActivate(Sender: TObject);
begin
Form1.Canvas.Pen.Width:= 3;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled:= Not(Timer1.Enabled);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
Var
i: Integer;
begin
W:= W + 5;
u:= 0;
Form1.Canvas.Pen.Color:= clBtnFace;
Form1.Canvas.Brush.Color:= clBtnFace;
Form1.Canvas.Rectangle(Xo-R-5, Yo-R-5, Xo+R+5, Yo+R+5);
For i:= 0 To N - 1 Do
begin
u:= u + 360/N;
M1.X:= Xo+Round(R*Cos((Pi/180)*(W+u)));
M1.Y:= Yo+Round(R*Sin((Pi/180)*(W+u)));
M2.X:= Xo+Round(R*Cos((Pi/180)*(W+u+v)));
M2.Y:= Yo+Round(R*Sin((Pi/180)*(W+u+v)));
Form1.Canvas.Pen.Color:= clBlack;
Form1.Canvas.Brush.Color:= clRed;
Form1.Canvas.Polygon([
Point(Xo,Yo),
Point(M1.X,M1.Y),
Point(M2.X,M2.Y)]);
end;
end;
__________________
If end Then begin;
|