Jag har en funktion som ritar en graf. All funkar men jag skulle vilja kunna öka amplituden på grafen. Jag har provat mig fram och fått en amplituden att bli större men då flyttar sig även grafen upp åt. Kan någon hjälpa mig med denna koden och se hur man skulle kunna "zoma" in grafen. Allså måde öka amplituden och våglängden. Sinus beräkningar är inte min starka sida. Jag orkade inte läsa igenom hela ditt inlägg, men amplituden ändrar du så här:Hjälp med grafriting
<code>
Stack st = new Stack();
string RxString = "";
float x0 = 300f;
float y0 = 50f;
public void OnPaintWave()
{
Bitmap bmp = new Bitmap(800, 200);
Graphics e = Graphics.FromImage(bmp);
PointF[] points = new PointF[200];
Random rnd = new Random();
Object[] arr = st.ToArray();
if (arr.Length > 200)
{
for (int j = 0; j < 200; j++)
{
int rr = rnd.Next(20, 90);
points[j] = new PointF();
points[j].X = x0 + (j * 5);
string TempValue = arr[j].ToString().Substring(0, 2);
points[j].Y = y0 -
(float)(Math.Sin((2 * Math.PI * (Convert.ToInt32(TempValue)*(-10))) / 500) * (500 / (2* Math.PI)));
textBox1.Text = TempValue;
textBox1.Refresh();
}
using (Pen p = new Pen(Color.Blue))
{
p.EndCap = LineCap.ArrowAnchor;
//Draw X-coordinate
e.DrawLine(p, x0, y0, x0 + 800, y0);
//Draw Y-coordinate
e.DrawLine(p, x0, y0 + 380, x0, y0 - 80);
}
e.DrawString("0", SystemFonts.DefaultFont, Brushes.Blue, x0, y0);
e.DrawString("p", SystemFonts.DefaultFont, Brushes.Blue, x0 + 100, y0);
e.DrawString("2p", SystemFonts.DefaultFont, Brushes.Blue, x0 + 200, y0);
e.SmoothingMode = SmoothingMode.AntiAlias;
e.DrawLines(Pens.Blue, points);
pictureBox1.Image = bmp;
pictureBox1.Refresh();
}
}
</code>Sv: Hjälp med grafriting
y=a*x
där a= amplituden. Alltså INTE så här:
y=x+a
då detta får effekten att grafen "flyttas uppåt".