vb.net 畫曲線圖

Private   Sub   Page_Load(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   MyBase.Load  
                                Dim   b   As   New   System.Drawing.Bitmap(200,   200,   PixelFormat.Format16bppRgb555)  
                  Dim   g   As   Graphics   =   Graphics.FromImage(b)  
   
                  g.Clear(Color.White)  
                  g.SmoothingMode   =   SmoothingMode.AntiAlias  
   
                  Dim   currtime   As   String  
                  If   Request.QueryString("time")   =   ""   Then  
                          currtime   =   Date.Now.ToString("T")  
                  Else  
                          currtime   =   Request.QueryString("time")  
                  End   If  
   
                  Call   drawClockFace(g)  
                  Call   drawClock(currtime,   g)  
   
                  Response.ContentType   =   "image/gif"  
   
                  b.Save(Response.OutputStream,   ImageFormat.Gif)  
                  b.Dispose()  
          End   Sub  
   
          Function   drawClock(ByVal   time   As   String,   ByVal   g   As   Graphics)  
                  Dim   hours,   minutes   As   Integer  
                  Dim   timearray   =   Split(time,   ":")  
                  If   UBound(timearray)   >=   1   Then  
                          hours   =   timearray(0)  
                          minutes   =   timearray(1)  
                  Else  
                          Response.Write(time)  
                          Response.End()  
                  End   If  
   
                  Dim   hx,   hy   As   Integer  
                  Dim   hdegrees  
                  Dim   x,   y   As   Integer  
                  Dim   degrees  
                  Dim   blackpen   As   New   Pen(Color.Black,   3)  
                  Dim   bluepen   As   New   Pen(Color.Blue,   3)  
                  Dim   redpen   As   New   Pen(Color.Red,   1)  
   
                  degrees   =   (90   -   (minutes   /   15)   *   90)   *   (System.Math.PI   /   180)  
                  x   =   System.Math.Round(50   *   System.Math.Cos(degrees))  
                  y   =   -(System.Math.Round(50   *   System.Math.Sin(degrees)))  
   
                  hdegrees   =   (90   -   ((hours   /   3)   +   (minutes   /   180))   *   90)   *   (System.Math.PI   /   180)  
                  hx   =   System.Math.Round(40   *   System.Math.Cos(hdegrees))  
                  hy   =   -(System.Math.Round(40   *   System.Math.Sin(hdegrees)))  
   
                  g.DrawLine(blackpen,   100,   100,   hx   +   100,   hy   +   100)  
                  g.DrawLine(redpen,   100,   100,   x   +   100,   y   +   100)  
   
                  Dim   salign   As   New   System.Drawing.StringFormat  
                  salign.Alignment   =   StringAlignment.Center  
                  g.DrawString(time,   New   Font("courier   NEW",   12,   FontStyle.Bold),   Brushes.Black,   100,   160,   salign)  
   
          End   Function  
   
          Function   drawClockFace(ByVal   g   As   Graphics)  
                  Dim   x,   y   As   Integer  
                  Dim   degrees,   minutes  
                  Dim   bluepen   As   New   Pen(Color.DarkBlue,   3)  
   
                  For   minutes   =   0   To   60   Step   5  
                          x   =   0  
                          y   =   0  
                          degrees   =   (90   -   (minutes   /   15)   *   90)   *   (System.Math.PI   /   180)  
                          x   =   System.Math.Round(95   *   System.Math.Cos(degrees))  
                          y   =   -(System.Math.Round(95   *   System.Math.Sin(degrees)))  
                          g.DrawLine(bluepen,   x   +   100,   y   +   100,   x   +   101,   y   +   101)  
   
                  Next  
          End   Function  
  End   Class
posted @ 2007-01-19 11:53  Nina  阅读(2252)  评论(3编辑  收藏  举报