Математика

Физика

Химия

Биология

Техника и    технологии

 

Пример

Moving models
Because the 3D world has no absolute frame of reference, moving and rotating is much more complex than in 2D, where all movement is in relation to screen position.

In 3D, everything is drawn relative to the camera’s frame of reference. If 
the camera is behind an object, when the object moves to the left relative to 
the center of the world, or world origin, it appears to move toward the 
right of the screen.                
Each piece of position and orientation information can be expressed relative 
to one or more frames of reference. A model’s transform property, for instance, 
expresses its position and rotation relative to the model’s parent. In general, 
there are four frames of reference to consider: relative to the object (model, 
light, camera) itself, relative to the object’s parent, relative to the world, 
and relative to some other object.                
  • Object-relative: When you create a model in a 3D modeling program, you build it relative to its own frame of reference. For instance, when you create a model of a car, the front of the car may be pointed along its z-axis and the antenna may be pointed along its y-axis. To move such a car forward (along its z-axis) regardless of which direction it is pointing relative to the camera or the world, use car.translate(0,0,10). To turn the car left, use car.rotate(0,45,0).

    The car model might have wheel models as children. To rotate the wheel of a car relative to itself, rather than relative to its parent (the car), use the following script:

    wheel.rotate(0,10,0)
    

    or

    car.child[1].rotate(0,10,0, #self)
    

    where the fourth parameter of the rotate method is the object the rotation should be relative to.

  • Parent-relative: A model’s transform property expresses its position and rotation relative to the model’s parent.
    If you want the wheels of the car to move outward regardless of how the wheels are turned, use
    car.child[1].translate(10,0,0,#parent)
    or car.child[1].transform.translate(10,0,0).
    If you want a planet model that is a child of the sun to orbit around the sun, use planet.rotate(0,5,0, #parent).
  • World-relative:
    If you want the car to move along the world’s x-axis regardless of which way it is facing, use
    model.translate(10,0,0,#world)
    .
    If you want to rotate the car 20° around the world y-axis, with the rotation taking place at the world location vector (10, 10, 10), use
    model.rotate(vector(10,10,10), vector(0,1,0), 20, #world)
    .
  • Relative to another object:
    If you want to move an object so that it goes toward the right edge of the screen, use model.translate (vec
  • or(10,0,0), sprite(1).camera).
    If you want to rotate the object parallel to the camera and around the center of the screen, use
    model.rotate(vector(0,0,0), vector(0,0,1), 20, sprite(1).camera)
    .

on Exitframe(me)

  --Перемещение

  member("myTest").model("Sphere02").translate(0,-1,0,#world)

  go to the frame

end Exitframe

Пример

 

Назад

 

Hosted by uCoz