13422

Визуализация линейных изображений

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

Информатика, кибернетика и программирование

Лабораторная работа №2 Тема Визуализация линейных изображений. Задание Начертить узор образованный 50 вложенными квадратами. Стороны первого квадрата параллельны осям координат экрана. Вершины каждого последующего квадрата это точки на сторон...

Русский

2013-05-11

47.5 KB

11 чел.

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

  1.  Тема

Визуализация линейных изображений.

  1.  Задание

Начертить узор, образованный 50 вложенными  квадратами. Стороны первого квадрата параллельны осям координат экрана. Вершины каждого последующего квадрата – это точки на сторонах предыдущего квадрата, делящие эти стороны в отношении  Р = 0,08.

  1.  Теоретические сведения

Прямая линия, проходящая через две точки с координатами (x1 ,y1)  и (x2,y2), может быть описана параметрическими уравнениями:

x = x1 + ( x2 –x1) P,

y = y1 + ( y2 y1) P.

 При   0 < P < 1 точка   (x, y) лежит внутри отрезка и делит его в отношении

 P / (1-P).

Алгоритм решения задачи:

Шаг 0. Начало.

Шаг 1. Задать координаты исходного квадрата.

Шаг 2.  Повторить 50 (в условии 50 вложенных квадратов) раз такие действия:

        Шаг 2.1. Нарисовать очередной квадрат.

        Шаг 2.2. По формулам x = x1 + ( x2 –x1) P,

     y = y1 + ( y2 – y1) P  определить координаты следующего вложенного квадрата.

C# Циклы

Оператор if может иметь конструкцию:

long x = 10;

if (x is byte) {Console.WriteLine("x имеет тип byte"); }

else if (x is short) {Console.WriteLine("x имеет тип short");  }

else if (x is long) {Console.WriteLine("x имеет тип long"); }

else {Console.WriteLine("x имеет не определённый тип или object"); }

Цикл же позволяет многократно повторять одну и ту же последовательность команд (тело цикла) и прирывать действие цикла при выполнении некоторого условия.

Например, в случае если необходимо проводить итерации по элементам массива то часто используют цикл for (о нём ниже).

Пример цикла for:

for (int i = 0; i < 10; i++)   

{

Console.Write("Введите слово: ");

string s = Console.ReadLine();

if (s == "end")  { break; }

Console.WriteLine("Вы ввели: " + s); 

}

Цикл while выполняет оператор или блок операторов, пока определенное выражение не примет значение false.

n = 0;

while (n < 6)

{

Console.WriteLine("Значение n = {0}", n);

n++;

}

Цикл do .. while выполнит блок операторов как минимум один раз, а затем повторит выполнение цикла до тех пор, пока условное выражение не возвратит значение false.

n = 12;

do {

Console.WriteLine("Значение n = {0}", n);

n++;

} while (n < 6);

В данном примере тело цикла выполнится - но только один раз.

Цикл foreach позволяет производить итерацию по каждому объекту в контейнерном классе, поддерживающем интерфейс IEnumerable. К контейнерным классам относятся массивы, классы коллекций (System.Collection) и определенные пользователем классы коллекций. 

Пример цикла foreach:

int[]  Ints = { 1, 2, 3 };

foreach (int temp in Ints)

{

Console.WriteLine(temp);  

}

Объекты в цикле foreach доступны только для чтения! Значение объекта в коллекции изменять нельзя! (следующий код вызовет ошибку):

temp++; // объекты в цикле foreach только для чтения!

Оператор goto позволяет передать управление строке программы, отмеченной меткой.

goto myLabel;

Console.WriteLine("Эта строка не будет выполнена");

myLabel:

Console.WriteLine("Выполнение будет продолжено от сюда");

Нельзя передать управление в блок кода, например в цикл for, нельзя передать управление за пределы класса и нельзя выйти из блока finaly.

Оператор break можно использовать для выхода из цикла for, foreach, while, do..while.

Оператор continue прерывает только текущую итерацию, т.е. выполнение будет продолжено со следующей итерации цикла, а не выйдет из цикла.

Рисование линии

Graphics.DrawLine - метод (Pen, Int32, Int32, Int32, Int32)

Проводит линию, соединяющую две точки, задаваемые парами координат.

C#

public void DrawLine(

Pen pen,

 int x1,

 int y1,

 int x2,

 int y2

)

Данный метод проводит линию на экране, соединяющую две точки, которые определяются параметрами x1, y1, x2 и y2.

4. Порядок выполнения лабораторной работы:

        1.Закодировать предложенный алгоритм.

        2. Написать программу.               

        3. Результаты работы программы показать на экране монитора.

        4. Оформить отчет, включающий: титульный лист, задание, код программы с комментариями, результаты та выводы по работе.

        5. Продемонстрировать рабочую программу на компьютере.  


 

А также другие работы, которые могут Вас заинтересовать

17746. Общие сведения о гидравлических машинах ДВС; конструктивные схемы и принцип действия 453.5 KB
  Лекция 1. Общие сведения о гидравлических машинах ДВС; конструктивные схемы и принцип действия. Классификация насосов ДВС и ЭУ с ДВС. Динамические насосы ДВС. Общие сведения о гидравлических механизмах ДВС К гидравлическим относятся машины работающие на несжимаем
17747. Общие сведения о гидравлических машинах ДВС; конструктивные схемы и принцип действия 1.96 MB
  Лекция 2. Общие сведения о гидравлических машинах ДВС; конструктивные схемы и принцип действия. Объёмные насосы ДВС. Струйные аппараты. Гидравлические передачи. Объёмные насосы. Самым древним из известных в технике объёмных насосов является поршневой насос. Насосы та
17748. Основы теории гидравлических машин 447 KB
  Лекция 3.Основы теории гидравлических машин. Основные параметры насосов. Основными параметрами насосов можно считать те которые чаще всего используются для оценки их потребительских качеств и технических описаниях этих гидравлических машин. Ниже рассматриваются
17749. Основы теории подобия насосов 451 KB
  Лекция 5. Основы теории подобия насосов. Теория подобия создавалась для накопления и хранения экспериментальных данных а также для их использования на объектах подобных между собой. Во все времена перед созданием достаточно крупного и ценного изделия старались сдела
17750. Кавитация в насосах и способы её учёта при выполнении расчётов 233 KB
  Лекция 6. Кавитация в насосах и способы её учёта при выполнении расчётов. Кавитацией в насосах обычно называют процессы сопровождающие вскипание жидкости в области входа в насос. Вскипание связано с падением давления в этой области и в зависимости от величины падения д
17751. Расчёт ступени центробежного насоса 222 KB
  Лекция 7. Расчёт ступени центробежного насоса. Определение частоты вращения ротора насоса n. При известных значениях расхода жидкости Q и удельной работы ступени L частота вращения ротора n определяется с учётом существующих ограничений на этот параметр. Эти ограничения...
17752. Расчёт ступени центробежного насос. Построение лопастей колеса в меридианном сечении и в плане 369.5 KB
  Лекция 8. Расчёт ступени центробежного насоса продолжение Построение лопастей колеса в меридианном сечении и в плане. Особенностью принятого способа изображения лопастей в меридианном сечении является то что лопасти не рассекаются плоскостью а в этой плоскости сов...
17753. Конструкция и работа центробежных насосов 1.33 MB
  Лекция 9. Конструкция и работа центробежных насосов Усилия в центробежных насосах. При работе центробежных насосов на роторе возникают осевое и радиальное усилия. Причина возникновения осевого усилия объясняется на основании рис. 9.1. В соответствии с рисунком осевое у...
17754. Объёмные насосы 709 KB
  Лекция №10. Объёмные насосы Специфической особенностью всех объёмных насосов является то что их производительность в основном определяется величинами периодически замыкаемых в них объёмов и скоростью переноса этих объёмов со стороны всасывания на сторону нагнетани