一段画SIN曲线的代码

  /// <summary>
  /// 初如化画布,并调用画线程序
  /// </summary>
  /// <param name="sender"></param>
  /// <param name="e"></param>
private void button2_Click(object sender, System.EventArgs e)
  {
   System.Drawing.Bitmap bmp = new Bitmap(400,220);
   Graphics g = Graphics.FromImage(bmp);
   g.FillRectangle(new SolidBrush(Color.White),0,0,400,220);
   this.pictureBox1.Image = bmp;
   画线(bmp);
   画曲线(bmp);
  }

  /// <summary>
  /// 画曲线
  /// </summary>
  /// <param name="bmp"></param>
  private void 画曲线(Bitmap bmp)
  {
   Graphics g = Graphics.FromImage(bmp);
   Pen pen = new Pen(Color.Black,1);
   double x1=10;
    double y1=0;
   for(double x=1;x<720;x++)
   {
    //SIN最大值为1,而我图上用了100像素,所以有
    //100/1=100  故而y要乘100;
    // x/180*Math.PI 这个表达式把角度换成弧度值
    double y=Math.Sin(x/180*Math.PI)*100;

    //SIN值一个循环为360度,而我图上用了200像素表示,所以有:
    //360/200=1.8 故而x值要除1.8
    g.DrawLine(pen,(float)x1,(float)y1+110,(float)(x/1.8)+10,(float)y+110);
    x1=x/1.8+10;
    y1=y;
   }
  }

  /// <summary>
  /// 画坐标线
  /// </summary>
  /// <param name="bmp"></param>
  private void 画线(Bitmap bmp)
  {
   Graphics g = Graphics.FromImage(bmp);
   Pen pen = new Pen(Color.Black,1);
//   g.DrawLine(pen,0,210,400,210);
//   g.DrawLine(pen,0,10,400,10);
   for(int i=10;i<400;i+=10)
   {
    g.DrawLine(pen,i,105,i,115);
   }

   pen = new Pen(Color.Black,2);
   g.DrawLine(pen,0,110,400,110);
   g.DrawLine(pen,10,0,10,220);
   for(int i=10;i<=400;i+=100)
   {
    g.DrawLine(pen,i,100,i,120);
   }
  }

posted on 2004-10-08 21:33  浪花  阅读(1750)  评论(0)    收藏  举报

导航