TFormVector x#, y#, z#, source_entity, dest_entity

Параметры

x#, y#, z# = компоненты вектора в 3d - пространстве
source_entity = указатель объекта или 0 для всего 3d-мира
dest_entity = указатель объекта-цели или 0 для всего 3d-мира

Описание

Выполняет преобразования между системами координат. После ее использования командами TFormedX (), TFormedY () и TFormedZ () читаются новые координаты.
Смотрите EntityX (), чтобы узнать подробнее о локальных координатах.
Эта команда подобна TFormPoint, но работает с вектором. О векторе можно думать, как о смещении относительно текущего местоположения.

Например, вектор (1,2,3) означает один шаг вправо, два шага вверх и три шага вперед.

Это похоже на PositionEntity и MoveEntity:

PositionEntity entity, x,y,z ; помещает объект в точку (x,y,z)

MoveEntity entity, x,y,z ; добавляет вектор (x,y,z) к текущей позиции

 

Пример

; TFormVector example

Graphics3D 640, 480

p = CreatePivot()

PositionEntity p, 10, 20, 30 ; easy to visualize
TurnEntity p, -5, -15, 25 ; hard to visualize

; Question: what would happen if we took one step 'forward'?
; The local vector corresponding to one step forward is (0,0,1)
; in the pivot's local space. We need the global version.

TFormVector 0,0,1, p,0 ; transform from pivot to world

message$ = "'One step forward' vector is ( "
message = message + TFormedX() + ", " + TFormedY() + ", " + TFormedZ() + " )"

Text 70, 180, message

; Now actually take the step. The new location should be
; (10,20,30) plus the vector we just computed.

MoveEntity p, 0,0,1

message$ = "New location of pivot is ( "
message = message + EntityX(p) + ", "
message = message + EntityY(p) + ", " + EntityZ(p) + " )"

Text 100, 210, message

Flip

WaitKey()
End

Главная страница

Нажмите сюда, чтобы увидеть последнюю версию этой страницы в интернете