ЗАДАНИЕ XX

Тема: Изучение работы с двухмерными функциями. Изменение внешнего вида имиджей
Цель: Краткое знакомство с двухмерными функциями.

Перед началом работы необходимо:

владение основными приемами работы в MS Windows
владение основными приемами работы в Stratum 2000

Основные понятия

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

Перемещение имиджа.
В ряде случаев, изображение имиджа должно в процессе расчета передвигаться, например, если это мяч. Тогда, отредактировав изображение имиджа, следует посмотреть номер этого графического объекта: чему равна переменная _Hobject типа HANDLE. Затем следует использовать стандартный имидж Object2d, которому следует в качестве параметра _Hobject задать значение, равное номеру объекта, а переменным x и y задавать числа, управляемые из имиджа физической модели, рассчитывающей перемещение мяча. В результате изображение имиджа мяча станет динамическим, передвигающимся. Объект получает не только математические свойства, но и соответствующее видовое поведение. Если вас не устраивает по каким-либо причинам то, что следует использовать стандартный имидж Object2D, то того же эффекта можно добиться использованием функции
r:=SetObjectOrg2D(HSpace, _Hobject, x, y),

Задание 1.

    Создадим новый проект.
    На поверхности схемы проекта создадим новый имидж с именем ball. Создадим для этого имиджа изображение. Нажмем правую кнопку на изображении имиджа ball, выберем пункт редактировать изображение. В открывшемся окне нарисуем окружность ( кнопка окружность на панели рисование ). Это и будет изображением нашего имиджа. В диалоге свойства имиджа (для ball) напишем следующий текст:

HANDLE HSpace,_HObject
STRING WindowName
STRING ClassName


   Где HSpace, _Hobject     дескрипторы окна и графического объекта.
WindowName    имя окна
ClassName        имя имиджа, схема которого будет открыта

    Теперь создадим схему имиджа. Нажмем правую кнопку на изображении имиджа ball, выберем пункт редактировать схему. В открывшейся схеме имиджа ball установим имидж LGSpace. Также создадим контактную площадку (для этого на свободном месте нажмем правую кнопку и выберем пункт Создать контактную площадку). После этого проведем связь между контактной площадкой и имиджем LGSpace, соединим переменные WindowName, ClassName и HSpace.
В свойствах имиджа ball, установите значения переменных по умолчанию
WindowName - имя окна
ClassName - название корневого имиджа.

   Далее создадим модель для перемещения имиджа по поверхности окна.
Напишем закон движения имиджа. Для этого в текст имиджа ball допишем следующий текст.

Orgx:=Orgx+vx
Orgy:=Orgy+vy

SizeX:=GetObjectWidth2d(HSpace,_HObject)
SizeY:=GetObjectHeight2d(HSpace,_HObject)

if(~Orgx<x0)
vx:=-vx
endif
if((~Orgx+SizeX)>x0+Width)
vx:=-vx
endif

if(~Orgy<y0)
vy:=-vy
endif

if((~Orgy+SizeY)>y0+Height)
vy:=-vy
endif

rez:=SetObjectOrg2d(HSpace,_HObject,~Orgx,~Orgy)


    И в схеме имиджа ball соединим переменные x0, y0, Height и Width.
    Задайте начальные скорости vx и vy.
При запуске проекта на выполнение имидж должен перемещаться по полю и отскакивать от стенок.

Задание 2.

    Скопируйте несколько имиджей ball и расставьте их на корневой схеме.