close

Вход

Забыли?

вход по аккаунту

?

Отчет Лабораторная 4

код для вставкиСкачать
ИТ1201. Опацкий Владимир.
Лабораторная работа №4. Разработка графических приложений с использованием GDI+. Построение графиков функций
1. Цель работы
Изучить пространства имен и классы интерфейса графических устройств .NET, основные свойства и методы этих классов, применяемые при сеансах вывода графики. Научиться использовать классы GDI+ для рисования графиков функций.
2. Задание
Построить график функции, вывести, разметить и подписать оси координат (обе!). Предусмотреть возможность установки количества точек и коэффициента упругости графика, а также возможность выбора шрифта с помощью стандартного диалогового окна. Подобрать параметры осей координат, обеспечивающие наглядность (для этого сначала можно построить график в Excel, чтобы оценить его параметры).
15. y= при 1,2 ≤ x ≤ 2,2.
3. Листинг
Класс "pt"
class pt
{
public double x{set;get;}
public double y { set; get; }
public pt(double x, double y)
{
this.x = x;
this.y = y;
}
public Point ToPoint(pt pt)
{
Point p1 = new Point((int)pt.x, (int)pt.y);
return p1;
}
}
Код программы.
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 WindowsFormsApplication6
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Font font;
SolidBrush brush=new SolidBrush(Color.Black);
float tens;
int k, x0, y0,x1,y1;
pt[] pmas;
double xp, yp,Mx,My,j,b;
Point[] pfm;
private double f(double x)
{
double y = (Math.Pow(2, 3 * x) + Math.Pow(10, -x) * Math.Cos(x + Math.PI / 3)) / (x * Math.Sin(x));
return y;
}
private void button3_Click(object sender, EventArgs e)
{
Close();
}
private void button1_Click(object sender, EventArgs e)
{
if (fontDialog1.ShowDialog() == DialogResult.OK)
{
font = fontDialog1.Font;
brush.Color = fontDialog1.Color;
}
}
private void button2_Click(object sender, EventArgs e)
{ tens = (float)numericUpDown2.Value;
k = (int)numericUpDown1.Value;
pmas = new pt[k];
xp = 1.2;
for (int i = 0; i < k; i++)
{
yp = f(xp);
pmas[i] = new pt(xp, yp);
xp += (double)1 / k;
}
x0 = 25;
y0 = pictureBox1.Height - x0;
Mx = (double)(pictureBox1.Width - x0) / 2.2;
My = (double)(pictureBox1.Height - x0) / pmas[k - 1].y;
x1 = x0;
y1 = y0;
j = 0;
b = 0;
for (int i = 0; i < k; i++)
{
pmas[i].x = pmas[i].x * Mx + x0;
pmas[i].y = pmas[i].y * My;
}
pfm = new Point[k];
for (int i = 0; i < k; i++)
{
pfm[i] = pmas[i].ToPoint(pmas[i]);
} pictureBox1.Invalidate();
pictureBox1.Paint += new System.Windows.Forms.PaintEventHandler(pictureBox1_Paint);
} private void pictureBox1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Graphics G = e.Graphics;
G.Clear(Color.White);
G.DrawLine(Pens.Black, x0, y0, pictureBox1.Width - 15, y0);
G.DrawLine(Pens.Black, x0, y0, x0, 15);
j = 0;
b = 0;
x1 = x0;
y1 = y0;
for (int i = 0; i <= k; i++)
{
G.DrawLine(Pens.Black, x1, y0, x1, y0 + 5);
G.DrawString(j.ToString("0.0"), font, brush, x1 - 5, y0 + 5);
x1 += (pictureBox1.Width - 2 * x0) / k;
j = j + 2.2 / k;
G.DrawLine(Pens.Black, x0, y1, x0 - 5, y1);
G.DrawString(b.ToString("0"), font, brush, x0 - 25, y1 - 5);
y1 -= (pictureBox1.Height - 2 * x0) / k;
b = b + (double)35 / k;
}
G.DrawCurve(Pens.Black, pfm, tens);
}
}
}
Документ
Категория
Рефераты
Просмотров
28
Размер файла
22 Кб
Теги
отчет, лабораторная
1/--страниц
Пожаловаться на содержимое документа