Цель работы
Cоздать
из массива целых чисел 2D
модель и вывести результат моделирования на экран.
Лабораторное задание
1. Изучить принципы работы графических библиотек ZedGraph, ChartDirector, SteamChart, MSChart.
2. С помощью данных библиотек в соответствии с заданием
разработать программу на языке C#.
3. Данные визуализации являются массивом – размером X разрядов, который
генерируется программно с помощью генератора случайных чисел (П) или читается из
двоичного файла (Ф) – данные записываются программно в файл, а затем читаются
из него функциями BinaryReader и BinaryWriter.
Данные о библиотеке, которую необходимо будет использовать, разрядности
элементов массива, его размере и способе
получения берутся из задания, каждое из которых будет соответствовать одному из
вариантов.
Вариант №5:
Библиотека ZedGraph;
Массив состоит из
64-разрядных элементов;
Размер массива = 256
элементов;
Массив генерируется
случайно с помощью генератора случайных чисел.
Листинг
Файл Form1.cs
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;
using ZedGraph;
namespace Lab_1
{
public
partial class Form1 : Form
{
public
Form1()
{
InitializeComponent();
SettingOfPane(Graphics.GraphPane);
}
public static Int64 NextInt64(Random rnd)
{
var buffer = new byte[sizeof(Int64)];
rnd.NextBytes(buffer);
return
BitConverter.ToInt64(buffer,0);
}
public void SettingOfPane(GraphPane pane)
{
pane.IsFontsScaled = false;
pane.XAxis.Scale.FontSpec.Size =
20;
pane.YAxis.Scale.FontSpec.Size =
20;
pane.XAxis.Title.Text = "Аргумент x";
pane.YAxis.Title.Text = "y=f(x)";
pane.XAxis.Title.FontSpec.IsItalic
= true;
pane.YAxis.Title.FontSpec.IsItalic
= true;
pane.XAxis.Title.FontSpec.Size =
25;
pane.YAxis.Title.FontSpec.Size =
25;
pane.Title.FontSpec.Size = 38;
pane.Title.FontSpec.IsUnderline = true;
pane.Title.Text = "График ф-ции: y=f(x)";
pane.Border.Color = Color.Coral;
pane.Fill.Type = FillType.Solid;
pane.Fill.Color = Color.DarkGray;
pane.Chart.Fill.Type =
FillType.Solid;
pane.Chart.Fill.Color =
Color.Black;
pane.XAxis.MajorGrid.IsVisible = true;
pane.YAxis.MajorGrid.IsVisible = true;
pane.XAxis.MajorGrid.Color =
Color.Cyan;
pane.YAxis.MajorGrid.Color =
Color.Cyan;
pane.XAxis.MajorGrid.IsZeroLine = true;
pane.YAxis.MajorGrid.IsZeroLine = true;
pane.XAxis.Color = Color.Gray;
pane.YAxis.Color = Color.Gray;
pane.Title.FontSpec.FontColor =
Color.Crimson;
pane.XAxis.Title.FontSpec.FontColor
= Color.Olive;
pane.YAxis.Title.FontSpec.FontColor
= Color.Olive;
}
private
void newGraphicToolStripMenuItem_Click(object
sender, EventArgs e)
{
GraphPane pane =
Graphics.GraphPane;//получим
панель
для
рисования
// Размеры шрифтов для разных элементов графика
SettingOfPane(pane);
pane.CurveList.Clear();// Очистим список кривых на тот случай, если до этого сигналы
уже были нарисованы
PointPairList list = new PointPairList();//создаем
объект шаблонного класса PointPairList, который представляет собой список координат
точек
Random rnd = new Random();//Создаем объект
шаблонного класса Random, который представляет из себя устройство для генерации
последовательности случайных чисел
//
Заполняем
список
точек
for
(int i = 0; i < 256; i ++)
{
list.Add(NextInt64(rnd),
NextInt64(rnd));
}
LineItem myCurve = pane.AddCurve("f(x)", list, Color.Blue,
SymbolType.None);
Graphics.AxisChange();
Graphics.Invalidate();
saveAsToolStripMenuItem.Enabled = true;
}
private
void saveAsToolStripMenuItem_Click(object
sender, EventArgs e)
{
GraphPane pane = Graphics.GraphPane;//получим панель для
рисования
// ДИалог выбора имени файла создаем вручную
SaveFileDialog dlg = new SaveFileDialog();
dlg.Filter = "*.png|*.png|*.jpg; *.jpeg|*.jpg;*.jpeg|*.bmp|*.bmp|Все
файлы|*.*";
if
(dlg.ShowDialog() == DialogResult.OK)
{
// Получаем
картинку, соответствующую панели
Bitmap bmp = pane.GetImage();
// Сохраняем
картинку средствами класса Bitmap
// Формат
картинки выбирается исходя из имени выбранного файла
if
(dlg.FileName.EndsWith(".png"))
{
bmp.Save(dlg.FileName,
System.Drawing.Imaging.ImageFormat.Png);
}
else
if (dlg.FileName.EndsWith(".jpg") || dlg.FileName.EndsWith(".jpeg"))
{
bmp.Save(dlg.FileName,
System.Drawing.Imaging.ImageFormat.Jpeg);
}
else
if (dlg.FileName.EndsWith(".bmp"))
{
bmp.Save(dlg.FileName,
System.Drawing.Imaging.ImageFormat.Bmp);
}
else
{
bmp.Save(dlg.FileName);
}
}
}
private
void exitToolStripMenuItem_Click(object sender,
EventArgs e)
{
Application.Exit();
}
}
}
Результаты работы программы
Комментариев нет:
Отправить комментарий