BufferGeometry
Object3D
Raycaster
Camera
CubeCamera
PerspectiveCamera
OrthographicCamera
StereoCamera
Clock
Curve
CurvePath
Path
Shape
ShapePath
ArrowHelper
AxesHelper
BoxHelper
Box3Helper
CameraHelper
DirectionalLightHelper
GridHelper
PolarGridHelper
HemisphereLightHelper
PlaneHelper
PointLightHelper
SkeletonHelper
SpotLightHelper
Light
PointLight
RectAreaLight
SpotLight
DirectionalLight
HemisphereLight
LightShadow
PointLightShadow
AnimationLoader
AudioLoader
BufferGeometryLoader
CompressedTextureLoader
CubeTextureLoader
DataTextureLoader
FileLoader
ImageBitmapLoader
ImageLoader
Loader
LoaderUtils
MaterialLoader
ObjectLoader
TextureLoader
LoadingManager
Material
Box2
Box3
Color
Cylindrical
Euler
Frustum
Interpolant
Line3
MathUtils
Matrix3
Matrix4
Plane
Quaternion
AnimationAction
AnimationClip
AnimationMixer
AnimationObjectGroup
AnimationUtils
keyframeTrack
PropertyBinding
PropertyMixer
BooleanKeyframeTrack
QuaternionKeyframeTrack
StringKeyframeTrack
Audio
AudioAnalyser
AudioContext
AudioListener
PositionalAudio

Object3D.applyQuaternion()

Object3D.applyQuaternion() 方法可以将一个四元数(THREE.Quaternion)应用到对象的转换矩阵上,从而使对象相对于其原点旋转。

语法

obj.applyQuaternion(quaternion)

参数

  • quaternion:要应用的四元数(THREE.Quaternion)。

示例

var object = new THREE.Object3D();

// 定义一个四元数
var quaternion = new THREE.Quaternion().setFromAxisAngle( new THREE.Vector3( 0, 1, 0 ), Math.PI / 2 );

// 应用四元数到对象
object.applyQuaternion( quaternion );

// 渲染场景
renderer.render( scene, camera );

上述示例中,我们创建了一个 Object3D 对象 object,并定义了一个围绕 y 轴旋转 90 度的四元数。最后,我们将该四元数应用到 object 对象的转换矩阵上,使其相对于原点旋转。

注意事项

  • Object3D.applyQuaternion() 会直接修改对象的转换矩阵,从而影响对象的位置、旋转、缩放等属性。
  • 应用四元数时,不会改变其位置,而是将其旋转到一个新的方向,然后跟随该方向进行移动。
  • Object3D.applyQuaternion() 操作是一个非常基础的操作,用于实现几何、相机、灯光等 three.js 中的许多基本功能。