![]() |
|
#2
|
||||
|
||||
![]() кое что поправил держи
Код:
procedure TForm2.drawing; const rad1=100; rad2=100; dx=150; dy=150; len1=2; len2=1.5; len3=1.1; var i: integer; X, Y, xh, yh, xm, ym, xs, ys: integer; Now: TDateTime; hour, min, sec, msec: word; hour1, min1, sec1: real; begin for i := 1 to 12 do begin X := trunc(-sin(((pi/6)*(i-1))-pi+(pi/6))*rad1) + dx; Y := trunc(cos(((pi/6)*(i-1))-pi+(pi/6))*rad2) + dy; image1.Canvas.TextOut(x,y,inttostr(i)); end; Now := Time; DecodeTime(Now,hour,min,sec,msec); if hour>12 then hour := hour - 12; hour1 := hour + min/60; Xh := trunc(-sin(((pi/6)*(hour1-1))-pi+(pi/6))*(rad1/len1)) + dx; Yh := trunc(cos(((pi/6)*(hour1-1))-pi+(pi/6))*(rad2/len1)) + dy; image1.Canvas.Pen.Color:=clred;; image1.Canvas.MoveTo(dx, dy); Image1.canvas.lineto(xh,yh); // minutnay strelka min1 := min/5; Xm := trunc(-sin(((pi/6)*(min1-1))-pi+(pi/6))*(rad1/len2)) + dx; Ym := trunc(cos(((pi/6)*(min1-1))-pi+(pi/6))*(rad2/len2)) + dy; image1.Canvas.Pen.Color:=clred;; image1.Canvas.MoveTo(dx, dy); Image1.canvas.lineto(xm,ym); //sekundnay strelka sec1 := sec/5; Xs := trunc(-sin(((pi/6)*(sec1-1))-pi+(pi/6))*(rad1/len3)) + dx; Ys := trunc(cos(((pi/6)*(sec1-1))-pi+(pi/6))*(rad2/len3)) + dy; image1.Canvas.Pen.Color:=clred;; image1.Canvas.MoveTo(dx, dy); Image1.canvas.lineto(xs,ys); end; procedure TForm2.Timer1Timer(Sender: TObject); begin drawing; end; |