using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace WindowsApplication1 { public partial class Form1 : Form { private double a, b, c, d; private Graphics paper; private Pen pen = new Pen(Color.Black); public Form1() { InitializeComponent(); } private void trackBarA_Scroll(object sender, EventArgs e) { DrawGraph(); } private void trackBarB_Scroll(object sender, EventArgs e) { DrawGraph(); } private void trackBarC_Scroll(object sender, EventArgs e) { DrawGraph(); } private void trackBarD_Scroll(object sender, EventArgs e) { DrawGraph(); } private void DrawGraph() { paper = pictureBox1.CreateGraphics(); a = trackBarA.Value; labelA.Text = "a=" + Convert.ToString(a); b = trackBarB.Value; labelB.Text = "b=" + Convert.ToString(b); c = trackBarC.Value; labelC.Text = "c=" + Convert.ToString(c); d = trackBarD.Value; labelD.Text = "d=" + Convert.ToString(d); paper.Clear(Color.White); Draw(); } private void Draw() { double x, y, nextX, nextY; int xPixel, yPixel, nextXPixel, nextYPixel; for (xPixel = 0; xPixel <= pictureBox1.Width; xPixel++) { x = ScaleX(xPixel); y = TheFunction(x); yPixel = ScaleY(y); nextXPixel = xPixel + 1; nextX = ScaleX(nextXPixel); nextY = TheFunction(nextX); nextYPixel = ScaleY(nextY); paper.DrawLine(pen, xPixel, yPixel, nextXPixel, nextYPixel); } } private double TheFunction(double x) { return a * x * x * x + b * x * x + c * x + d; } private double ScaleX(int xPixel) { double xStart = -5, xEnd = 5; double xScale = pictureBox1.Width / (xEnd - xStart); return (xPixel - (pictureBox1.Width / 2)) / xScale; } private int ScaleY(double y) { double yStart = -5, yEnd = 5; int pixelCoord; double yScale = pictureBox1.Height / (yEnd - yStart); pixelCoord = (int)(-y * yScale) + (int)(pictureBox1.Height / 2); return pixelCoord; } }}