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

Преобразование изображений

Автор:   •  Ноябрь 3, 2021  •  Лабораторная работа  •  2,975 Слов (12 Страниц)  •  188 Просмотры

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

Карагандинский технический университет 

Кафедра ИВС

Лабораторная работа №4

Дисциплина: «Компьютерная графика»

Тема: «Преобразование изображений»

Выполнил:

Студ. гр. ИС 19-3

Амирханов А.К.

Принял:                    

Преп.

Алина Г.Ж.

Караганда 2021


Лабораторная работа №4

Цель работы: овладение методами преобразования изображений.

Задание к работе 🡪 Вариант 2: 

  1. Изучить возможности использования однородных координат для преобразования точек и прямых на плоскости.
  2. Рассмотреть частные случаи преобразований:

а)   параллельный перенос;

б)   поворот на угол   [pic 1]  вокруг начала координат;

в)   симметрия относительно точки;

г)   симметрия относительно оси;

д)   масштабирование.

  1. Аппроксимировать многоугольником заданную фигуру  (в соответствии с номером варианта). Составить программу, позволяющую выполнять перечисленные в п. 2   преобразования  полученного многоугольника.

Вариант № 2

2.    Пешка

Результаты выполнения программы:

[pic 2]

Рис.1 – фигура.

Листинг программы: 

let grid = document.getElementById('canvas1');

let canvas = document.getElementById('canvas2');

let shovel = [

    {

        x: 1,

        y: 1

    },

    {

        x: 7,

        y: 1

    },

    {

        x: 5,

        y: 5

    },

    {

        x: 6,

        y: 6

    },

    {

        x: 5,

        y: 7

    },

    {

        x: 6,

        y: 8

    },

    {

        x: 6,

        y: 10

    },

    {

        x: 5,

        y: 11

    },

    {

        x: 3,

        y: 11

    },

    {

        x: 2,

        y: 10

    },

    {

        x: 2,

        y: 8

    },

    {

        x: 3,

        y: 7

    },

    {

        x: 2,

        y: 6

    },

    {

        x: 3,

        y: 5

    },

    {

        x: 1,

        y: 1

    },

];

if (grid.getContext) {

    let ctx = grid.getContext('2d');

    ctx.beginPath();

    ctx.strokeStyle = "#ddd";

    for (let x = 0; x < 800; x += 10) {

        ctx.moveTo(x, 0);

        ctx.lineTo(x, 800);

    }

    for (let y = 0; y < 800; y += 10) {

        ctx.moveTo(0, y);

        ctx.lineTo(800, y);

    }

    ctx.closePath();

    ctx.stroke();

    ctx.beginPath();

    ctx.strokeStyle = "black";

    ctx.moveTo(400, 0);

    ctx.lineTo(400, 800);

    ctx.moveTo(0, 400);

    ctx.lineTo(800, 400);

    ctx.closePath();

    ctx.stroke();

}

if (canvas.getContext) {

    let ctx = canvas.getContext('2d');

    function draw() {

        ctx.clearRect(0, 0, canvas.width, canvas.height);

        let radios = document.getElementsByName('radio');

       

        for (let i = 0; i < radios.length; i++) {

            if (radios[i].type == "radio" && radios[i].checked) {

                ctx.beginPath();

                if (radios[i].id == 'radio1') {

                    input1.type = 'hidden';

                    input2.type = 'hidden';

                    input1.disabled = true;

                    input2.disabled = true;

                    shovel.forEach(element => ctx.lineTo(400 + element.x * 10, 400 - element.y * 10));

                    ctx.stroke();

                }

                if (radios[i].id == 'radio2') {

...

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