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. Продемонстрировать рабочую программу на компьютере.  


 

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

31188. Морские и сейсмические косы и набортные сейсморазведочные станции 31.5 KB
  Морские сейсмические косы предназначены для приема сейсмических колебаний регистрирующей аппаратурой расположенной на геофизическом судне. По существу цифровые сейсмические косы это морской аналог совокупности полевых сейсморегистрирующих моделей телеметрической системы сбора информации. В настоящее время на большинстве геофизических судов используются цифровые сейсмические косы.
31189. Обобщенная структура телеметрических станций 54.5 KB
  Вспомогательное оборудование станции служит для установки параметров ПО технического обслуживания и текущего ремонта всей системы и состоит из тестирующего устройства полевых модулей и модуля контроля линейной расстановки а также диагностического и ремонтного комплексов осциллографа и зарядного устройства. К блоку управления станцией всегда подключается ограниченное число линейных интерфейсных модулей.Этот модуль всегда выполняет следующие функции: осуществляет самотестирование и диагностику; присваивает адреса полевым коммутационным и...
31190. Общая характеристика современных систем наблюдений 32.5 KB
  Поэтому на начальном этапе применения трехмерных систем наблюдений широкое распространение получили такие упрощенные системы наблюдения которые позволяли в реальных условиях того времени выполнять Сейсморазведочные работы по технологии 30. По мере накопления опыта работ с такими системами и получения признания их высокой результативности были предложены и приняты к опробованию достаточно сложные регулярные системы наблюдений. В настоящее время регулярные площадные системы наблюдений достаточно высокой сложности являются приоритетными в...
31191. Общая характеристика систем наблюдений 36 KB
  Взаимное расположение пунктов возбуждения ПВ и пунктов приема ПП сейсмических волн в изучаемой среде принято называть системой наблюдений. Последовательность взаимного перемещения ПВ и ПП на поверхности наблюдений называют технологией наблюдений. В зависимости от структуры формы и взаимного расположения линий пунктов возбуждения ЛПВ и линий пунктов приема ЛПП сейсмических волн различают точечные профильные и пространственные системы наблюдений.
31192. Основные понятия теории проектрования систем наблюдений 3D 48 KB
  Поэтому такие системы наблюдений следует проектировать таким образом чтобы они по возможности обеспечивали достаточно равномерное покрытие всей площади работ регулярной сетью общих средних глубинных точек. В основе построения всех площадных систем наблюдений используются в качестве базовых элементов два понятия понятия о непродольном сейсмическом профиле и площадном распределении приемников и или источников Мешбей 1985; Потапов 1987. При работах на суше наиболее часто употребляются системы наблюдений использующие крестовые...
31193. Основы методики и технологии работ методом общей глубинной точки 35.5 KB
  Метод общей глубинной точки как уже говорилось был предложен в 1950 г. С каждой трассой связаны три координаты профиля: пункта возбуждения s пункта приема r и средней точки m. Кроме того для ряда задач удобно и полезно рассматривать расстояния h от средней точки до источника или приемника.
31194. Принцип цифровой магнитной записи 30 KB
  При таком виде представления для записи конкретного числа необходимо фиксировать в строго конкретном месте только числа а.нуль или единица и одно число нуль или единица для характеристики знака числа. EXP0NENT 0FRCTION где SIGN численное значение двоичного разряда определяющее знак числа для положительного числа SIGN=0 для отрицательного числа SIGN=1; FRCTION мантисса двоичного числа представляющая собой последовательность нулей и единиц чисел а начиная с первого слева ненулевого значения; EXPONENT показатель степени 2...
31195. Принципы квантования сигналов по времени амплитуде 36 KB
  Точность представления аналоговых сигналов в дискретной форме тем выше чем меньше интервал квантования. В теории передачи информации для обоснования выбора шага квантования аналоговых сигналов обычно используют теорему В.5 fmx где fmx максимальная частота спектра сигналов.