一段画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);
}
}
浙公网安备 33010602011771号