Главная страница
Навигация по странице:

  • Лабораторная работа по компьютерной графике №1

  • Общее задание

  • Описание реализованных в программе графических примитивов их атрибутов, а также средств среды разработки программы для их отображения.

  • Текст программы

  • Анализ результатов

  • Графика - лаба 1. Лабораторная работа по компьютерной графике 1 примитиви и атрибуты


    Скачать 463.98 Kb.
    НазваниеЛабораторная работа по компьютерной графике 1 примитиви и атрибуты
    Дата01.11.2022
    Размер463.98 Kb.
    Формат файлаdocx
    Имя файлаГрафика - лаба 1.docx
    ТипЛабораторная работа
    #764856


    МИНИСТЕРСТВО НАУКИ И ОБРАЗОВАНИЯ УКРАИНЫ

    Днепропетровский национальный университет железнодорожного транспорта имени академика В.А. Лазаряна

    Кафедра КИТ

    Лабораторная работа по компьютерной графике №1
    «примитиви и атрибуты»

    Выполнил:

    Студент

    921 группы

    Сторчак Игорь

    Днепропетровск

    2016

    Цель

    1. Получить навыки создания простых графических изображений, и построение графика функций.

    2. Выучить графические возможности среды, в которой создавалась программа.

    Общее задание

    В среде разработки MS Visual Studio разработать программу для рисования графика функции.

    Программа должна предоставлять возможность пользователю:

    • задавать диапазон аргумента функции и значения коэффициентов функций;

    • цвета и стиль начертания и заливки различных элементов графика (фона, осей, заливки и графика функции, маркеров);

    • задавать вид (круг или квадрат) и размер маркеров.

    Требования к графику функции:

    • график функции должен полностью отображаться в указанной области;

    • график должен содержать оси координат с подписями и разметкой;

    • в узловых точках на графике должны отображаться маркеры.

    График



    Описание реализованных в программе графических примитивов их атрибутов, а также средств среды разработки программы для их отображения.

    Для создания пустого изображения используем функцию Bitmap ^b = gcnew Bitmap (int width, int height) ; width – ширина изображения, height – высота изображения. 
    Для создания поля для рисования на изображении используется функция Graphics ^gr = Graphics::FromImage(Image ^img), img – изображения. 
    Для создания поля для рисования на некотором контроле используется функция Graphics ^gr = (Control)->CreateGraphics(), в данном случае Control - panel1.
    Для очистки поля используется функция (Graphics^)gr->Clear(Color color), color – цвет фона.
    Для рисования линии используется функция (Graphics^)gr->DrawLine(Pen^ pen, Point p1, Point p2), pen – ручка с избранным цветом для рисования, p1,p2 – точка на графике, с координатами х, y .
    Для выведения текста на график используется функция (Graphics^)gr->DrawString(String ^text, Font ^font, Brush ^br, float x, float y), text – Текст, который нужно вывести, Font – шрифт текста, его размер, Brush – цвет текста, х,у – координаты выведения текста. 
    Для рисования точки или элипса используется функция 
    (Graphics^)gr->DrawEllipse(Pen ^pen, float x, float y,float width,float height), аргумент pen – ручка сизбранным цветом для рисования, х,у – координаты, width, height – размер элипса, для точки 1,1 
    Для заливки элипса используется функция (Graphics^)gr->FillEllipse (Brush^ brush, float x,float y,float width, float height) , brash – заливка избранного цвета, х,у – координаты, width, height – размер элипса. 
    Для заливки прямоугольника используется функция (Graphics^)gr->FillRectangle (Brush^ brush, float x,float y,float width, float height) , brash- заливка избранного цвета, х,у – координаты, width, height – размер прямоугольника. 
    Для отображения изображения на поле для рисования на некотором контроле используется функция (Graphics^)gr->DrawImage(Image ^b, int x, int y) , b- изображения, х,у – координаты изображения.

    Текст программы

    Main.cpp

    #include

    #include "MyForm.h"
    [System::STAThread]

    int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

    {

    System::Windows::Forms::Application::EnableVisualStyles();

    System::Windows::Forms::Application::SetCompatibleTextRenderingDefault(false);

    System::Windows::Forms::Application::Run(gcnew Graphics_LR1_13::MyForm);

    return 0;

    }

    MyForm.h

    #pragma once
    namespace Graphics_LR1_13 {
    using namespace System;

    using namespace System::ComponentModel;

    using namespace System::Collections;

    using namespace System::Windows::Forms;

    using namespace System::Data;

    using namespace System::Drawing;
    ///

    /// Сводка для MyForm

    ///


    public ref class MyForm : public System::Windows::Forms::Form

    {

    private:

    int kx = 30, ky = 30;

    Graphics ^gr;

    Graphics ^gf;

    int paramA = 5;

    int markSize = 5;

    double paramX1 = 0;

    double paramX2 = 0;

    Color ColorGraph = Color(Color::Red);

    Color ColorBackground = Color(Color::White);

    Color ColorAxis = Color(Color::Black);

    Color MarkerColor = Color(Color::Green);

    String ^Markerstyle = "Круг";

    Panel^ panel1;

    Bitmap^ b;

    private: System::Windows::Forms::TrackBar^ trackBar2;

    private: System::Windows::Forms::TrackBar^ trackBar1;

    private: System::Windows::Forms::Button^ button4;

    private: System::Windows::Forms::Button^ button3;

    private: System::Windows::Forms::Button^ button2;

    private: System::Windows::Forms::Button^ button1;

    private: System::Windows::Forms::Label^ label7;

    private: System::Windows::Forms::Label^ label6;

    private: System::Windows::Forms::Label^ label5;

    private: System::Windows::Forms::Label^ label4;

    private: System::Windows::Forms::Label^ label3;

    private: System::Windows::Forms::Label^ label2;

    private: System::Windows::Forms::Label^ label1;

    private: System::Windows::Forms::ComboBox^ comboBox1;

    private: System::Windows::Forms::TextBox^ textBox3;

    private: System::Windows::Forms::TextBox^ textBox2;

    private: System::Windows::Forms::TextBox^ textBox1;

    private: System::Windows::Forms::TrackBar^ trackBar4;
    private: System::Windows::Forms::ColorDialog^ colorDialog1;
    double fy(double x)

    {

    x = Math::Tan(x);

    return x*paramA*(x*x - 1) / (1 + x*x);

    }

    double fx(double x)

    {

    x = Math::Tan(x);

    return paramA*(x*x - 1) / (1 + x*x);

    }

    void mypaint()

    {

    Point AxisX1 = Point(0, panel1->Height / 2);

    Point AxisX2 = Point(panel1->Width, panel1->Height / 2);

    Point AxisY1 = Point(panel1->Width / 2, 0);

    Point AxisY2 = Point(panel1->Width / 2, panel1->Height);

    Pen ^penAxis = gcnew Pen(ColorAxis);

    Pen ^penGraph = gcnew Pen(ColorGraph);

    SolidBrush^ sbMark = gcnew SolidBrush(MarkerColor);

    //создаём оси

    gr->Clear(panel1->BackColor);

    gr = Graphics::FromImage(b);

    gr->DrawLine(penAxis, AxisX1, AxisX2);

    gr->DrawLine(penAxis, AxisY1, AxisY2);
    //Рисуем черточки на оси х

    int tem = 1;

    for (int i = panel1->Width / 2 - kx, j = panel1->Width / 2 + kx; i > 0; i -= kx, j += kx)

    {

    gr->DrawLine(penAxis, Point(i, panel1->Height / 2 - kx / 6), Point(i, panel1->Height / 2 + kx / 6));

    gr->DrawString((-tem).ToString(), gcnew System::Drawing::Font("Times New Roman", (float)(kx / 2.5)), Brushes::Black, Point(i - kx / 5, panel1->Height / 2 + kx / 3));

    gr->DrawLine(penAxis, Point(j, panel1->Height / 2 - kx / 6), Point(j, panel1->Height / 2 + kx / 6));

    gr->DrawString((tem).ToString(), gcnew System::Drawing::Font("Times New Roman", (float)(kx / 2.5)), Brushes::Black, Point(j - kx / 5, panel1->Height / 2 + kx / 3));

    tem++;

    }

    tem = 1;

    //рисуем черточки на ось у

    for (int i = panel1->Height / 2 - ky, j = panel1->Height / 2 + ky; i > 0; i -= ky, j += ky)

    {

    gr->DrawLine(penAxis, Point(panel1->Width / 2 - ky / 6, i), Point(panel1->Width / 2 + ky / 6, i));

    gr->DrawString((-tem).ToString(), gcnew System::Drawing::Font("Times New Roman", (float)(ky / 2.5)), Brushes::Black, Point(panel1->Width / 2 + ky / 3, (int)(i - ky / 2.5)));

    gr->DrawLine(penAxis, Point(panel1->Width / 2 - ky / 6, j), Point(panel1->Width / 2 + ky / 6, j));

    gr->DrawString((tem).ToString(), gcnew System::Drawing::Font("Times New Roman", (float)(ky / 2.5)), Brushes::Black, Point(panel1->Width / 2 + ky / 3, (int)(j - ky / 2.5)));

    tem++;

    }

    //рисуем гр.ф. по точкам

    double step = (Math::Max(kx, ky) < 31 ? 0.001 : 0.05 / Math::Max(kx, ky));

    for (double i = -Math::PI / 2 + step; i < Math::PI / 2; i += step)

    {

    if ((paramX1 == 0 && paramX2 == 0) || (fx(i) > paramX1 - 0.1 && fx(i) < paramX2))

    {

    gr->DrawEllipse(penGraph, (float)(fx(i) * kx + panel1->Width / 2), (float)(-fy(i) * ky + panel1->Height / 2), (float)1, (float)1);

    if ((int)fx(i) != (int)fx(i + step))

    {

    if (Markerstyle == "Круг") gr->FillEllipse(sbMark, (float)(fx(i) * kx + panel1->Width / 2 - markSize / 2), (float)(-fy(i) * ky + panel1->Height / 2 - markSize / 2), (float)markSize, (float)markSize);

    else gr->FillRectangle(sbMark, (float)(fx(i) * kx + panel1->Width / 2 - markSize / 2), (float)(-fy(i) * ky + panel1->Height / 2 - markSize / 2), (float)markSize, (float)markSize);

    }

    }

    }

    gf->DrawImage(b, 0, 0);

    }
    public:

    MyForm(void)

    {

    InitializeComponent();

    //

    //TODO: добавьте код конструктора

    //

    }
    protected:

    ///

    /// Освободить все используемые ресурсы.

    ///


    MyForm()

    {

    if (components)

    {

    delete components;

    }

    }
    private:

    ///

    /// Обязательная переменная конструктора.

    ///


    System::ComponentModel::Container ^components;
    #pragma region Windows Form Designer generated code

    ///

    /// Требуемый метод для поддержки конструктора — не изменяйте

    /// содержимое этого метода с помощью редактора кода.

    ///


    void InitializeComponent(void)

    {

    this->panel1 = (gcnew System::Windows::Forms::Panel());

    this->button4 = (gcnew System::Windows::Forms::Button());

    this->button3 = (gcnew System::Windows::Forms::Button());

    this->button2 = (gcnew System::Windows::Forms::Button());

    this->button1 = (gcnew System::Windows::Forms::Button());

    this->label7 = (gcnew System::Windows::Forms::Label());

    this->label6 = (gcnew System::Windows::Forms::Label());

    this->label5 = (gcnew System::Windows::Forms::Label());

    this->label4 = (gcnew System::Windows::Forms::Label());

    this->label3 = (gcnew System::Windows::Forms::Label());

    this->label2 = (gcnew System::Windows::Forms::Label());

    this->label1 = (gcnew System::Windows::Forms::Label());

    this->comboBox1 = (gcnew System::Windows::Forms::ComboBox());

    this->textBox3 = (gcnew System::Windows::Forms::TextBox());

    this->textBox2 = (gcnew System::Windows::Forms::TextBox());

    this->textBox1 = (gcnew System::Windows::Forms::TextBox());

    this->trackBar4 = (gcnew System::Windows::Forms::TrackBar());

    this->trackBar2 = (gcnew System::Windows::Forms::TrackBar());

    this->trackBar1 = (gcnew System::Windows::Forms::TrackBar());

    this->colorDialog1 = (gcnew System::Windows::Forms::ColorDialog());

    this->panel1->SuspendLayout();

    (cli::safe_cast(this->trackBar4))->BeginInit();

    (cli::safe_cast(this->trackBar2))->BeginInit();

    (cli::safe_cast(this->trackBar1))->BeginInit();

    this->SuspendLayout();

    //

    // panel1

    //

    this->panel1->Controls->Add(this->button4);

    this->panel1->Controls->Add(this->button3);

    this->panel1->Controls->Add(this->button2);

    this->panel1->Controls->Add(this->button1);

    this->panel1->Controls->Add(this->label7);

    this->panel1->Controls->Add(this->label6);

    this->panel1->Controls->Add(this->label5);

    this->panel1->Controls->Add(this->label4);

    this->panel1->Controls->Add(this->label3);

    this->panel1->Controls->Add(this->label2);

    this->panel1->Controls->Add(this->label1);

    this->panel1->Controls->Add(this->comboBox1);

    this->panel1->Controls->Add(this->textBox3);

    this->panel1->Controls->Add(this->textBox2);

    this->panel1->Controls->Add(this->textBox1);

    this->panel1->Controls->Add(this->trackBar4);

    this->panel1->Controls->Add(this->trackBar2);

    this->panel1->Controls->Add(this->trackBar1);

    this->panel1->Location = System::Drawing::Point(0, 2);

    this->panel1->Name = L"panel1";

    this->panel1->Size = System::Drawing::Size(839, 516);

    this->panel1->TabIndex = 0;

    this->panel1->Paint += gcnew System::Windows::Forms::PaintEventHandler(this, &MyForm::panel1_Paint);

    //

    // button4

    //

    this->button4->Location = System::Drawing::Point(12, 435);

    this->button4->Name = L"button4";

    this->button4->Size = System::Drawing::Size(103, 23);

    this->button4->TabIndex = 17;

    this->button4->Text = L"Цвет фона";

    this->button4->UseVisualStyleBackColor = true;

    this->button4->Click += gcnew System::EventHandler(this, &MyForm::button4_Click);

    //

    // button3

    //

    this->button3->Location = System::Drawing::Point(12, 406);

    this->button3->Name = L"button3";

    this->button3->Size = System::Drawing::Size(103, 23);

    this->button3->TabIndex = 16;

    this->button3->Text = L"Цвет осей";

    this->button3->UseVisualStyleBackColor = true;

    this->button3->Click += gcnew System::EventHandler(this, &MyForm::button3_Click);

    //

    // button2

    //

    this->button2->Location = System::Drawing::Point(12, 375);

    this->button2->Name = L"button2";

    this->button2->Size = System::Drawing::Size(103, 23);

    this->button2->TabIndex = 15;

    this->button2->Text = L"Цвет графика";

    this->button2->UseVisualStyleBackColor = true;

    this->button2->Click += gcnew System::EventHandler(this, &MyForm::button2_Click);

    //

    // button1

    //

    this->button1->Location = System::Drawing::Point(711, 406);

    this->button1->Name = L"button1";

    this->button1->Size = System::Drawing::Size(103, 23);

    this->button1->TabIndex = 14;

    this->button1->Text = L"Цвет маркеров";

    this->button1->UseVisualStyleBackColor = true;

    this->button1->Click += gcnew System::EventHandler(this, &MyForm::button1_Click);

    //

    // label7

    //

    this->label7->AutoSize = true;

    this->label7->Location = System::Drawing::Point(715, 432);

    this->label7->Name = L"label7";

    this->label7->Size = System::Drawing::Size(99, 13);

    this->label7->TabIndex = 13;

    this->label7->Text = L"Размер маркеров";

    //

    // label6

    //

    this->label6->AutoSize = true;

    this->label6->Location = System::Drawing::Point(715, 361);

    this->label6->Name = L"label6";

    this->label6->Size = System::Drawing::Size(90, 13);

    this->label6->TabIndex = 12;

    this->label6->Text = L"Стиль маркеров";

    //

    // label5

    //

    this->label5->AutoSize = true;

    this->label5->Location = System::Drawing::Point(715, 52);

    this->label5->Name = L"label5";

    this->label5->Size = System::Drawing::Size(78, 13);

    this->label5->TabIndex = 11;

    this->label5->Text = L"Масштаб по Y";

    //

    // label4

    //

    this->label4->AutoSize = true;

    this->label4->Location = System::Drawing::Point(714, 6);

    this->label4->Name = L"label4";

    this->label4->Size = System::Drawing::Size(78, 13);

    this->label4->TabIndex = 10;

    this->label4->Text = L"Масштаб по Х";

    //

    // label3

    //

    this->label3->AutoSize = true;

    this->label3->Location = System::Drawing::Point(88, 20);

    this->label3->Name = L"label3";

    this->label3->Size = System::Drawing::Size(13, 13);

    this->label3->TabIndex = 9;

    this->label3->Text = L"a";

    //

    // label2

    //

    this->label2->AutoSize = true;

    this->label2->Location = System::Drawing::Point(23, 41);

    this->label2->Name = L"label2";

    this->label2->Size = System::Drawing::Size(18, 13);

    this->label2->TabIndex = 8;

    this->label2->Text = L"x2";

    //

    // label1

    //

    this->label1->AutoSize = true;

    this->label1->Location = System::Drawing::Point(23, 5);

    this->label1->Name = L"label1";

    this->label1->Size = System::Drawing::Size(18, 13);

    this->label1->TabIndex = 7;

    this->label1->Text = L"x1";

    //

    // comboBox1

    //

    this->comboBox1->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList;

    this->comboBox1->FormattingEnabled = true;

    this->comboBox1->Items->AddRange(gcnew cli::array< System::Object^ >(2) { L"Круг", L"Квадрат" });

    this->comboBox1->Location = System::Drawing::Point(711, 377);

    this->comboBox1->Name = L"comboBox1";

    this->comboBox1->Size = System::Drawing::Size(104, 21);

    this->comboBox1->TabIndex = 6;

    this->comboBox1->SelectedIndexChanged += gcnew System::EventHandler(this, &MyForm::comboBox1_SelectedIndexChanged);

    //

    // textBox3

    //

    this->textBox3->Location = System::Drawing::Point(72, 36);

    this->textBox3->Name = L"textBox3";

    this->textBox3->Size = System::Drawing::Size(42, 20);

    this->textBox3->TabIndex = 5;

    this->textBox3->Text = L"5";

    this->textBox3->TextChanged += gcnew System::EventHandler(this, &MyForm::textBox3_TextChanged);

    //

    // textBox2

    //

    this->textBox2->Location = System::Drawing::Point(12, 54);

    this->textBox2->Name = L"textBox2";

    this->textBox2->Size = System::Drawing::Size(42, 20);

    this->textBox2->TabIndex = 4;

    this->textBox2->TextChanged += gcnew System::EventHandler(this, &MyForm::textBox2_TextChanged);

    //

    // textBox1

    //

    this->textBox1->Location = System::Drawing::Point(12, 20);

    this->textBox1->Name = L"textBox1";

    this->textBox1->Size = System::Drawing::Size(42, 20);

    this->textBox1->TabIndex = 3;

    this->textBox1->TextChanged += gcnew System::EventHandler(this, &MyForm::textBox1_TextChanged);

    //

    // trackBar4

    //

    this->trackBar4->Location = System::Drawing::Point(711, 447);

    this->trackBar4->Maximum = 4;

    this->trackBar4->Name = L"trackBar4";

    this->trackBar4->Size = System::Drawing::Size(104, 45);

    this->trackBar4->TabIndex = 2;

    this->trackBar4->Value = 1;

    this->trackBar4->Scroll += gcnew System::EventHandler(this, &MyForm::trackBar4_Scroll);

    //

    // trackBar2

    //

    this->trackBar2->Location = System::Drawing::Point(697, 20);

    this->trackBar2->Maximum = 9;

    this->trackBar2->Minimum = 1;

    this->trackBar2->Name = L"trackBar2";

    this->trackBar2->Size = System::Drawing::Size(104, 45);

    this->trackBar2->TabIndex = 1;

    this->trackBar2->Value = 5;

    this->trackBar2->Scroll += gcnew System::EventHandler(this, &MyForm::trackBar2_Scroll);

    //

    // trackBar1

    //

    this->trackBar1->Location = System::Drawing::Point(697, 62);

    this->trackBar1->Maximum = 9;

    this->trackBar1->Minimum = 1;

    this->trackBar1->Name = L"trackBar1";

    this->trackBar1->Size = System::Drawing::Size(104, 45);

    this->trackBar1->TabIndex = 0;

    this->trackBar1->Value = 5;

    this->trackBar1->Scroll += gcnew System::EventHandler(this, &MyForm::trackBar1_Scroll);

    //

    // MyForm

    //

    this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);

    this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;

    this->ClientSize = System::Drawing::Size(838, 515);

    this->Controls->Add(this->panel1);

    this->DoubleBuffered = true;

    this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedToolWindow;

    this->Name = L"MyForm";

    this->Text = L"MyForm";

    this->Load += gcnew System::EventHandler(this, &MyForm::MyForm_Load);

    this->panel1->ResumeLayout(false);

    this->panel1->PerformLayout();

    (cli::safe_cast(this->trackBar4))->EndInit();

    (cli::safe_cast(this->trackBar2))->EndInit();

    (cli::safe_cast(this->trackBar1))->EndInit();

    this->ResumeLayout(false);
    }

    #pragma endregion
    private: System::Void panel1_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e) {

    mypaint();

    }

    private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {

    if (colorDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK) {

    ColorGraph = colorDialog1->Color;

    mypaint();

    }

    }

    private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) {

    if (colorDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK) {

    ColorAxis = colorDialog1->Color;

    mypaint();

    }

    }

    private: System::Void button4_Click(System::Object^ sender, System::EventArgs^ e) {

    if (colorDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK) {

    panel1->Paint += gcnew System::Windows::Forms::PaintEventHandler(this, &MyForm::panel1_Paint);

    ColorBackground = colorDialog1->Color;

    panel1->BackColor = ColorBackground;
    }

    }

    private: System::Void textBox1_TextChanged(System::Object^ sender, System::EventArgs^ e) {

    if (!Double::TryParse(textBox1->Text, paramX1))paramX1 = 0;

    mypaint();

    }

    private: System::Void textBox2_TextChanged(System::Object^ sender, System::EventArgs^ e) {

    if (!Double::TryParse(textBox2->Text, paramX2))paramX2 = 0;

    mypaint();

    }

    private: System::Void textBox3_TextChanged(System::Object^ sender, System::EventArgs^ e) {

    Int32::TryParse(textBox3->Text, paramA);

    mypaint();
    }

    private: System::Void trackBar2_Scroll(System::Object^ sender, System::EventArgs^ e) {

    switch (trackBar2->Value)

    {

    case 1: kx = 2;

    break;

    case 2: kx = 5;

    break;

    case 3:kx = 10;

    break;

    case 4:kx = 20;

    break;

    case 5:kx = 30;

    break;

    case 6:kx = 75;

    break;

    case 7:kx = 100;

    break;

    case 8:kx = 200;

    break;

    case 9: kx = 300;

    break;

    case 10: kx = 500;

    break;

    }

    mypaint();

    }

    private: System::Void trackBar1_Scroll(System::Object^ sender, System::EventArgs^ e) {

    switch (trackBar1->Value)

    {

    case 1: ky = 2;

    break;

    case 2: ky = 5;

    break;

    case 3:ky = 10;

    break;

    case 4:ky = 20;

    break;

    case 5:ky = 30;

    break;

    case 6:ky = 75;

    break;

    case 7:ky = 100;

    break;

    case 8:ky = 200;

    break;

    case 9: ky = 300;

    break;

    case 10: ky = 500;

    break;

    }

    mypaint();

    }

    private: System::Void comboBox1_SelectedIndexChanged(System::Object^ sender, System::EventArgs^ e) {

    Markerstyle = comboBox1->Text;

    mypaint();

    }

    private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {

    if (colorDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK) {

    MarkerColor = colorDialog1->Color;

    mypaint();

    }

    }

    private: System::Void trackBar4_Scroll(System::Object^ sender, System::EventArgs^ e) {

    switch (trackBar4->Value)

    {

    case 0: markSize = 3;

    break;

    case 1: markSize = 5;

    break;

    case 2: markSize = 10;

    break;

    case 3:markSize = 20;

    break;

    case 4:markSize = 40;

    break;

    }

    mypaint();

    gf->DrawImage(b, 0, 0);

    }

    private: System::Void MyForm_Load(System::Object^ sender, System::EventArgs^ e) {

    b = gcnew Bitmap(panel1->Width, panel1->Height);

    gr = Graphics::FromImage(b);

    gf = panel1->CreateGraphics();
    }

    };

    }

    Демонстрация работы программы

    Результат роботы с стандартными значениями и параметрами



    Результат работы с изменёнными значениями и параметрами.



    Анализ результатов

    Программа применяет параметры, которые задаёт пользователь, изменяет цвет фона, графика, масштабирует график, и правильно его строит по заданным значениям.

    Вывод

    В результате выполнения данной работы были изучены графические примитивы и их атрибуты для создания графика функции в среде MS Visual Studio на языке С++.


    написать администратору сайта