Difference between revisions of "GIObject.MoveRotateAndScale"

From SunFlurry wiki
Jump to: navigation, search
1>Admin
(Created page with "{{infobox function |name=MoveRotateAndScale |object=Объект GI#Атрибуты и функции графических объектов|Графический объ...")
 
m (1 revision imported)
 
(No difference)

Latest revision as of 08:53, 22 January 2025

  MoveRotateAndScale (Функции графических объектов)
Объект:Графический объект объекта GI
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Визуальность:Да

Функция изменяет внутренние переменные смещения графического объекта, его поворота и его масштаба, которыми система обновляет текущую проекцию объекта каждый раз до начала его рисования. Матрица смещения поворота и масштара применяется дополнительно к глобальной матрице-проекции объекта GI. См. также MoveAndRotate.

Синтаксис

GIObject.MoveRotateAndScale(<Смещение объекта по X (REAL)>,<Смещение объекта по Y (REAL)>,<Смещение объекта по Z (REAL)>,<Поворот объекта вокрут оси X (REAL)>,<Поворот объекта вокрут оси Y (REAL)>,<Поворот объекта вокрут оси Z (REAL)>,<Масштаб объекта по X (REAL)>,<Масштаб объекта по Y (REAL)>,<Масштаб объекта по Z (REAL)>)

Аргументы

  • <Смещение объекта по X (REAL)>,<Смещение объекта по Y (REAL)>,<Смещение объекта по Z (REAL)> - Аргументы задают линейные смещения визуального объекта относительно камеры. Любой из аргументов может быть опущен, в этом случае соответствующее смещение не будет изменяться.
  • <Поворот объекта вокрут оси X (REAL)>,<Поворот объекта вокрут оси Y (REAL)>,<Поворот объекта вокрут оси Z (REAL)> - Аргументы задают угловой поворот объекта относительно одной из осей в ракурсе камеры. Поворот задается в градусах. Любой из аргументов может быть опущен, в этом случае соответствующая переменная поворота не будет изменена.
  • <Масштаб объекта по X (REAL)>,<Масштаб объекта по Y (REAL)>,<Масштаб объекта по Z (REAL)> - Аргументы задают множители размеров объекта для каждой из осей в ракурсе камеры. Множитель 1 означает, что соответствующий масштаб не будет больше или меньше оригального. Любой из аргументов может быть опущен, в этом случае соответствующая переменная масштаба не будет изменена.

Примеры

//Фрагмент из файла tetris.sfo
//Сдвигаем следующую фигуру в требуемое место на экране
аШир3:=0;аВыс3=0;
ШиринаВысотаФигуры(лкСледующаяФигура[1],аШир3,аВыс3);
лкОбъекты[3].MoveRotateAndScale(-(лкСмещениеСтаканаX+dx*6+(4*dx-аШир3*dx2)\2),-(лкСмещениеСтаканаY+dx+max(0,3*dx-dx-аВыс3*dx2)\2));