Рассмотрим пример программы, которая в форме Windows рисует график синусоиды с текстовым заголовком. Форма включает кнопку с надписью Старт, которая запускает обработчик, выполняющий все операции.
В обработчике выполняются действия:
- Вычисляется функция.
- Задается ссылка на объект графики.
- Выводится текст заголовка.
- Рисуются координатные оси.
- Рисуется график функции.
Листинг программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace GraphicFunctionApplication
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int imax =100; //число точек в периоде
int t=2; //число периодов
int amp=70; //амплитуда
int h = 40; //отступ для текста
int x0=20; //начала координат
int y0 = h+amp;
double[] f = new double [imax*t+10];
// Функция
for (int i = 0; i < imax * t; i++)
{
f[i] = Math.Round(amp * Math.Sin(2 * Math.PI / imax * i));
}
// Инструменты рисования
Graphics g = Graphics.FromHwnd(this.Handle); // Где рисуем
Pen pen = Pens.Black; // Чем рисуем
// Текст заголовка
g.DrawString("График синусоиды", new Font("Arial", 14),
Brushes.Red, 0, 0); //Вывод текста
//textBox1.Text = "График синусоиды";
//Рисуем график
g.DrawLine(pen , x0, y0, x0+imax*t, y0); //Рисуем ось X
g.DrawLine(pen, x0, y0-amp, x0, y0+amp); //Рисуем ось Y
for (int i = 0; i < imax * t; i++) //Рисуем график
{
int f1 = y0 - (int)f[i]; //Координата Y[i]
int f2 = y0 - (int)f[i + 1]; //Координата Y[i+1]
g.DrawLine(pen, x0+i, f1, x0+i+1, f2);
}
}
}
}
При прогоне отображается форма, в которой затем рисуется график.