Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ванеев О.Н. МУ к ЛР2 по ТИПИС.doc
Скачиваний:
0
Добавлен:
21.08.2019
Размер:
86.53 Кб
Скачать

Федеральное агентство по образованию

Государственное образовательное учреждение

высшего профессионального образования

"Кузбасский государственный технический университет"

Кафедра гибких автоматизированных производственных систем

Использование свойств классов для преобразования параметров моделируемых объектов

Методические указания по выполнению лабораторной работы по курсу "Теория информационных процессов и систем" для студентов специальности 230201 дневной формы обучения

Составитель О.Н. Ванеев

Утверждены на заседании

кафедры ИАПС

Протокол № ХХХ от ХХ.ХХ.ХХ

Рекомендации к печати учебно-методической комиссией специальности 230201

Протокол № ХХХ от ХХ.ХХ.ХХ

Электронная копия находится в библиотеке главного корпуса КузГТУ

Кемерово 2008

1 Цель работы

Изучение основных принципов отображения параметров моделируемых объектов в виде параметров отображаемых образов.

В связи с этим, содержанием работы являются:

1) изучение принципов опосредованного исследования параметров объектов через параметры их отображаемых образов;

2) изучение преобразования параметров модели к параметрам образов;

3) изучение элемента класса «свойства» и его использование для преобразования паромеров объектов в параметры отображаемых образов.

2 Основные Теоретические свеДения

Для работы с моделью системы, исследования её особенностей необходимо иметь некоторые параметры, соответствующие исследуемым характеристикам реальной системы. Данные параметры можно рассматривать как атрибуты моделируемого объекта, они имеют тип, соответствующий типу исследуемых характеристик реальной системы. При рассмотрении положения объекта на плоскости это будут координаты элемента, например int x, int y.

С другой стороны, для визуального контроля процесса моделирования в модель вводятся вспомогательные атрибуты, определяющие положение отображаемого образа моделируемого объекта на форме. В качестве образа объекта можно использовать, стандартные отображаемые компоненты (рисунок или комбинацию меток).

Положение отображаемых компонент на форме определяется их собственными свойствами mm.left , mm.top, задаваемыми в координатах формы.

При переходе от параметров положения моделируемого объекта в к параметрам отображаемого образа необходимо выполнить преобразования, учитывающие

  • размеры формы, то есть масштаб отображаемого образа;

  • отличие отсчета координат на экране (на форме) от используемых в предметной области;

  • тип данных координат на форме.

Масштаб учитывается в виде масштабного коэффициента, на который необходимо умножить величину, характеризующую значение параметра моделируемого объекта. Масштаб M определяется как отношение значения которым отображается исследуемый параметр размера на форме RFx, к его значению в реальной системе RRx:

M=RFx/RRx .

Особенностью отсчета координат на экране (на форме) является то, что свойства отображаемых элементов top и left отсчитываются от левого верхнего угла формы, а не от центра, как это принято в реальных системах. Для преобразования координат объекта в координаты отображаемого образа необходимо сделать поправку, соответствующую началу координат объекта на форме. Например, для приведения точки отсчета координаты X отображаемого объекта в середину формы необходимо выполнить следующее выражение:

x* M +form1*.Width/2;

приведению точки отсчета координаты Y отображаемого объекта в середину формы будет соответствовать следующее выражение

x* M +form1*.Height/2;

Так как формы непосредственно не видно из экземпляра объекта, то для доступа к ее свойствам Width Height и другим можно использовать то, что форма должна быть задана в качестве свойства parent отображаемых образов, то есть label1.Parent.Height.

Особенность типа данных координат формы состоят в том, что они имеют целый тип int, координаты же объекта имеют тип вещественный - double ycor. Поэтому при преобразовании координат объекта в координаты элемента на форме их необходимо преобразовать к целому типу. Для преобразования координат в среде VS, при использовании платформы разработки NET используются системные функции класса System.Convert для преобразования к целому типу используется System.Convert.ToInt32. Таким образом выражения, соответствующее переходу от координат моделируемого объекта к координатам отображаемого образа будет выглядеть следующим образом

Left= System.Convert.ToInt32(x* M +form1.Width/2);

Top= System.Convert.ToInt32(y* M +form1.height/2);

Для реализации преобразования параметров моделируемого объекта в параметры отображаемого образа при использовании ООП, на основе средств языка С# удобно использование элемента класса свойство.

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

Leftobject =2 ;

Однако при этом происходит выполнение действия связанного с записью в данное поле.

Описание свойства имеет следующий формат:

УровеньДоступаК_Свойству ТипСвойства ИмяСвойства

{

set { действияВыполняемыеПриЗаписиВ_свойство

}

get { действияВыполняемыеПриЧтениииСвойства

return Выражение;

}

}

Где set – ключевое слово, указывающее, на действия, выполняемые, при записи данных в свойство.

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

Значение, присеваемое полю, то есть стоящее справа от знака присвоения, и стоящее слева от знака присвоения, при чтении из поля, в действиях, задаваемых при описании поля ( в разделах set и get) обозначается как служебная переменная value .

В рассматриваемом случае, то есть при использовании свойств для преобразования координат реального объекта к координатам отображаемого образа свойство, соответствующее преобразованию по горизонтали будет выглядеть следующим образом:

public double xcor

{

set{

x0 = value;

Mhor = (label1.Parent.Width)/ 3000.0;

label1.Left = System.Convert.ToInt32(x0 * Mhor);

label2.Left = label1.Left + label1.Width / 4;

label3.Left = label1.Left;

}

get{

return x0;

}

В приведенном примере x0 – переменная класса, введенная для хранения координат реального объекта; Mhor – масштаб по горизонтали