大家好! 我试图在c#
中绘制sin-function 7sin(3t)PointF[] Points = new PointF[200];
int T = 20; //t
Graphics gr;
private void calculatePoints()
{
gr = CreateGraphics();
Brush brush = new SolidBrush(Color.Red);
Pen pen = new Pen(brush, 3);
float xk, yk;
//k for scaling
yk = (float)((this.ClientRectangle.Height - 40)/2) / 7;
xk = (float)(this.ClientRectangle.Width - 40) / (Points.Length);
for (int i = 0; i < Points.Length; i++)
{
//here we go
Points[i] = new PointF(20 + i * xk,
this.ClientRectangle.Height/2 - (float) Math.Sin(3 * i * T) * 7 * yk);
}
gr.DrawCurve(pen, Points);
}
所以我的曲线看起来像这样: http://i.stack.imgur.com/ucpOV.png
但是如果我将sin的参数乘以180例如,我会得到一个很好的情节。 http://i.stack.imgur.com/K26KE.png
你能帮帮我吗?
答案 0 :(得分:2)
Math.Sin
需要Radians。您可以使用yourNumber * Math.PI / 180
转换为Radians。
答案 1 :(得分:0)
Math.Sin参数需要以弧度而不是度数。