ЗАДАНИЕ 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 и расставьте их на корневой схеме.