Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Работа с растровым изображениями

Автор:   •  Май 15, 2019  •  Лабораторная работа  •  3,445 Слов (14 Страниц)  •  288 Просмотры

Страница 1 из 14

Цель работы: изучить, как производятся двухмерные преобразования с помощью однородных координат и матрицы преобразования 3x3. Написать и отладить программу для 2D преобразований

Практическая часть:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace WindowsFormsApplication4

{

    public partial class Form1 : Form

    {

        double[,] T = new double[,] { { Math.Cos(0.9), Math.Sin(0.9), 0 }, { -Math.Sin(0.9), Math.Cos(0.9), 0 }, { 0, 0, 1 } };

        public Form1()

        {

            InitializeComponent();

        }

        //уменьшение фигуры

        private void button1_Click(object sender, EventArgs e)

        {

            T[2, 2] = T[2, 2] + 1;

            Invalidate();

        }

        //увеличение фигуры

        private void button2_Click(object sender, EventArgs e)

        {

            T[2, 2] = T[2, 2] - 0.1;

            Invalidate();

        }

        //перемещение направо

        private void button3_Click(object sender, EventArgs e)

        {

            T[2, 0] = T[2, 0] + 1;

           

            Invalidate();

        }

        //в исходное положение

        private void button4_Click(object sender, EventArgs e)

        {

            T = new double[,] { { 1, 0, 0 }, { 0, 1, 0 }, { 0, 0, 1 } };

            Invalidate();

        }

        //перемещение вверх

        private void button5_Click(object sender, EventArgs e)

        {

            T[2, 1] = T[2, 1] + 1;

            Invalidate();

        }

        //перемещение налево

        private void button6_Click(object sender, EventArgs e)

        {

           

                T[2, 0] = T[2, 0] - 1;

               

                Invalidate();

           

        }

        //перемещение вниз

        private void button7_Click(object sender, EventArgs e)

        {

           

                T[2, 1] = T[2, 1] - 1;

                Invalidate();

        }

        //отражение относительно Ox

        private void button8_Click(object sender, EventArgs e)

        {

            T[1, 1] = -1;

            Invalidate();

        }

        //отражение относительно Oy

        private void button9_Click(object sender, EventArgs e)

        {

            T[0, 0] = -1;

            Invalidate();

        }

        //отражение отнасительно Y = x;

        private void button10_Click(object sender, EventArgs e)

        {

            T[1, 1] = -1;

            T[0, 0] = -1;

            Invalidate();

        }

//Поворот вокруг точки.

        int i = 0;

        private void button11_Click(object sender, EventArgs e)

        {

            if (T[0, 0] == 1 && T[0, 1] == 0 && T[0, 2] == 0 && T[1, 0] == 0 && T[1, 1] == 1 && T[1, 2] == 0 && T[2, 0] == 0 && T[2, 1] == 0 && T[2, 2] == 1)

...

Скачать:   txt (10 Kb)   pdf (640.3 Kb)   docx (107.5 Kb)  
Продолжить читать еще 13 страниц(ы) »
Доступно только на Essays.club