我想将做一个时钟小程序,用lineto方法进行画时针和分针,用ellipse在一个正方形的内画一个圆,现在就不知道怎样取出每一度在圆上的坐标,那位大侠指点一二!谢谢!~

解决方案 »

  1.   

    MoveTo();LineTo()
    指针是歪的。呵呵~~~~~~~
      

  2.   

    以前老师布置过作业,我也就写了个时钟,不过很烂,其实就是每秒画一个图,其他都没考虑,你参考下
    procedure Form1.showtime;//显示时钟过程后面掉用
    var
      i:Integer;
      x,y:Double; //半径是150
      MYDate:TDateTime; //获取时间
      Hour,Min,Sec,MS:Word;//分别定义,小时,分,秒,毫秒
    begin
      Self.ClearCanvas(Canvas);
      MYDate:=Now;  //获取系统当前时间
      DecodeTime(MYDate,Hour,Min,Sec,MS);
      if Hour>12 then
        Hour:=Hour mod 12;//获取时间
      Self.Canvas.Brush.Color:=clred;
      setviewportOrgEx(Canvas.Handle,Form1.Width div 2,Form1.Height div 2,nil);
      for i:=0 to 11 do
      begin
        x:=150*(cos(Pi/6*i-Pi*1/2));
        y:=150*(sin(Pi/6*i-Pi*1/2));
        Form1.Canvas.TextOut(trunc(x),trunc(y),'* ');
        if Hour=i then  //画时针,
        begin
          Canvas.MoveTo(0,0);
          Canvas.Pen.Width:=10;
          x:=90*(cos(Pi/6*i-Pi*1/2));
          y:=90*(sin(Pi/6*i-Pi*1/2));
          Canvas.LineTo(trunc(x),trunc(y));
        end;
      end;
      for i:=0 to 59 do
      begin            //分针
        if Min=i then
        begin
          Canvas.MoveTo(0,0);
          x:=140*(cos(Pi/30*i-Pi*1/2));
          y:=140*(sin(Pi/30*i-Pi*1/2));
          Canvas.LineTo(trunc(x),trunc(y));
        end;
      end;
      for i:=0 to 59 do
      begin             //秒针
        if Sec=i then
        begin
        Canvas.MoveTo(0,0);
        Canvas.Pen.Width:=2;
        x:=150*(cos(Pi/30*i-Pi*1/2));
        y:=150*(sin(Pi/30*i-Pi*1/2));
        Canvas.LineTo(trunc(x),trunc(y));
        end;
      end;
    end;procedure TForm1.ClearCanvas(ACanvas: TCanvas);
    begin
      with ACanvas do   //清空画布
      begin
        Brush.Style:=bsSolid;
        Brush.Color:=clWhite;
        FillRect(clientRect);
      end;
    end;procedure TForm1.Timer1Timer(Sender: TObject);
    begin   //利用timer来调用showtime画表
      Form1.DoubleBuffered:=true;
      ShowTime;
    end;
      

  3.   

    考虑一下解析几何中圆的方程
    X^2 + Y^2 = R^2