Three.js API手册

动画
AnimationAction AnimationClip AnimationMixer AnimationObjectGroup AnimationUtils KeyframeTrack PropertyBinding PropertyMixer
动画 / 轨道
BooleanKeyframeTrack ColorKeyframeTrack NumberKeyframeTrack QuaternionKeyframeTrack StringKeyframeTrack VectorKeyframeTrack
音频
Audio AudioAnalyser AudioContext AudioListener PositionalAudio
摄像机
ArrayCamera Camera CubeCamera OrthographicCamera PerspectiveCamera StereoCamera
常量
Animation Core CustomBlendingEquation DrawModes Materials Renderer Textures
核心
BufferAttribute BufferGeometry Clock DirectGeometry EventDispatcher Face3 Geometry InstancedBufferAttribute InstancedBufferGeometry InstancedInterleavedBuffer InterleavedBuffer InterleavedBufferAttribute Layers Object3D Raycaster Uniform
核心 / BufferAttributes
BufferAttribute_Types
弃用列表
DeprecatedList
附件
Earcut ShapeUtils
附件 / 核心
Curve CurvePath Font Interpolations Path Shape ShapePath
附件 / 曲线
ArcCurve CatmullRomCurve3 CubicBezierCurve CubicBezierCurve3 EllipseCurve LineCurve LineCurve3 QuadraticBezierCurve QuadraticBezierCurve3 SplineCurve
附件 / 物体
ImmediateRenderObject
几何体
BoxBufferGeometry BoxGeometry CircleBufferGeometry CircleGeometry ConeBufferGeometry ConeGeometry CylinderBufferGeometry CylinderGeometry DodecahedronBufferGeometry DodecahedronGeometry EdgesGeometry ExtrudeBufferGeometry ExtrudeGeometry IcosahedronBufferGeometry IcosahedronGeometry LatheBufferGeometry LatheGeometry OctahedronBufferGeometry OctahedronGeometry ParametricBufferGeometry ParametricGeometry PlaneBufferGeometry PlaneGeometry PolyhedronBufferGeometry PolyhedronGeometry RingBufferGeometry RingGeometry ShapeBufferGeometry ShapeGeometry SphereBufferGeometry SphereGeometry TetrahedronBufferGeometry TetrahedronGeometry TextBufferGeometry TextGeometry TorusBufferGeometry TorusGeometry TorusKnotBufferGeometry TorusKnotGeometry TubeBufferGeometry TubeGeometry WireframeGeometry
辅助对象
ArrowHelper AxesHelper BoxHelper Box3Helper CameraHelper DirectionalLightHelper FaceNormalsHelper GridHelper PolarGridHelper PositionalAudioHelper HemisphereLightHelper PlaneHelper PointLightHelper RectAreaLightHelper SkeletonHelper SpotLightHelper VertexNormalsHelper
灯光
AmbientLight DirectionalLight HemisphereLight Light PointLight RectAreaLight SpotLight
灯光 / 阴影
DirectionalLightShadow LightShadow SpotLightShadow
加载器
AnimationLoader AudioLoader BufferGeometryLoader Cache CompressedTextureLoader CubeTextureLoader DataTextureLoader FileLoader FontLoader ImageBitmapLoader ImageLoader Loader LoaderUtils MaterialLoader ObjectLoader TextureLoader
加载器 / 管理器
DefaultLoadingManager LoadingManager
材质
LineBasicMaterial LineDashedMaterial Material MeshBasicMaterial MeshDepthMaterial MeshDistanceMaterial MeshLambertMaterial MeshMatcapMaterial MeshNormalMaterial MeshPhongMaterial MeshPhysicalMaterial MeshStandardMaterial MeshToonMaterial PointsMaterial RawShaderMaterial ShaderMaterial ShadowMaterial SpriteMaterial
数学库
Box2 Box3 Color Cylindrical Euler Frustum Interpolant Line3 Math Matrix3 Matrix4 Plane Quaternion Ray Sphere Spherical Triangle Vector2 Vector3 Vector4
数学库 / 插值
CubicInterpolant DiscreteInterpolant LinearInterpolant QuaternionLinearInterpolant
物体
Bone Group Line LineLoop LineSegments LOD Mesh Points Skeleton SkinnedMesh Sprite
渲染器
WebGLMultisampleRenderTarget WebGLRenderer WebGLRenderTarget WebGLRenderTargetCube
渲染器 / 着色器
ShaderChunk ShaderLib UniformsLib UniformsUtils
场景
Fog FogExp2 Scene
纹理贴图
CanvasTexture CompressedTexture CubeTexture DataTexture DataTexture3D DepthTexture Texture VideoTexture

欧拉角(Euler)

表示 Euler 的类。

欧拉角描述一个旋转变换,通过指定轴顺序和其各个轴向上的指定旋转角度来旋转一个物体。

示例(Example)

var a = new THREE.Euler( 0, 1, 1.57, 'XYZ' ); 
var b = new THREE.Vector3( 1, 0, 1 ); 
b.applyEuler(a);

构造器(Constructor)

Euler( x : Float, y : Float, z : Float, order : String )

x - (optional) 用弧度表示x轴旋转量。 默认值是 0
y - (optional) 用弧度表示y轴旋转量。 默认值是 0
z - (optional) 用弧度表示z轴旋转量。 默认值是 0
order - (optional) 表示旋转顺序的字符串,默认为'XYZ'(必须是大写)。

属性(Properties)

# .isEuler : Boolean

用于判定此对象或者此类的派生对象是否是欧拉角。默认值为 true

不应该改变该值,因为它在内部用于优化。

# .order : String

order值应用于旋转顺序。默认值为 'XYZ',这意味着对象将首先是 绕X轴旋转,然后是Y轴,最后是Z轴。其他可能性包括: 'YZX', 'ZXY', 'XZY', 'YXZ'和'ZYX'。这些必须是大写字母。

Three.js 使用intrinsic Tait-Bryan angles(Yaw、Pitch、Roll)。 这意味着旋转是在本地坐标系下进行的。也就是说,对于“XYZ”顺序,首先是围绕local-X轴旋转(与world- x轴相同), 然后是local-Y(现在可能与world y轴不同),然后是local-Z(可能与world z轴不同)。

如果order值被改变,onChangeCallback 会被调用。

# .x : Float

当前x分量的值。

如果这个值发生变化,onChangeCallback 会被调用。

# .y : Float

当前y分量的值。

如果这个值发生变化,onChangeCallback 会被调用。

# .z : Float

当前z分量的值。

如果这个值发生变化,onChangeCallback 会被调用。

方法(Methods)

# .copy ( euler : Euler ) : Euler

将 euler 的属性拷贝到当前对象。

# .clone () : Euler

返回一个与当前参数相同的新欧拉角。

# .equals ( euler : Euler ) : Boolean

检查 euler 是否与当前对象相同。

# .fromArray ( array : Array ) : Euler

长度为3或4的一个 array 。array[3] 是一个可选的 order 参数。

将欧拉角的x分量设置为 array[0]。
将欧拉角的x分量设置为 array[1]。
将欧拉角的x分量设置为 array[2]。
将array[3]设置给欧拉角的 order 。可选。

# .onChange ( onChangeCallback : Function ) : Euler

onChangeCallback - 为 onChangeCallback() 函数赋值。

# .onChangeCallback ( ) : Euler

默认情况下,这个函数为空,但是它可以通过onChange()来设置。
在更改 x, y, z 或 order 属性之后调用它, 在调用大多数setter函数之后也会调用它(详细信息请参阅那些函数)。

# .reorder ( newOrder : String ) : Euler

通过这个欧拉角创建一个四元数,然后用这个四元数和新顺序设置这个欧拉角。

警告: 这将弃用旋转信息。

# .set ( x : Float, y : Float, z : Float, order : String ) : Euler

x - 用弧度表示x轴旋转量。
y - 用弧度表示y轴旋转量。
z - 用弧度表示z轴旋转量。
order - (optional) 表示旋转顺序的字符串。

设置该欧拉变换的角度和旋转顺序 order ,然后调用 onChangeCallback()。

# .setFromRotationMatrix ( m : Matrix4, order : String, update : Boolean ) : Euler

m - Matrix4 矩阵上面的3x3部分是一个纯旋转矩阵rotation matrix (也就是不发生缩放)
order - (可选参数) 表示旋转顺序的字符串。
update - (可选参数) 表示设置完变换矩阵后是否调用 onChangeCallback。

使用基于 order 顺序的纯旋转矩阵来设置当前欧拉角。

# .setFromQuaternion ( q : Quaternion, order : String, update : Boolean ) : Euler

q - 归一化的四元数。
order - (可选参数) 表示旋转顺序的字符串。
update - (可选参数) 表示设置完变换矩阵后是否调用 onChangeCallback。

根据 order 指定的方向,使用归一化四元数设置这个欧拉变换的角度。

# .setFromVector3 ( vector : Vector3, order : String ) : Euler

vector - Vector3.
order - (可选参数) 表示旋转顺序的字符串。

设置 x, y and z 并且选择性更新 order。 更改完成之后调用 onChangeCallback()。

# .toArray ( array : Array, offset : Integer ) : Array

array - (可选参数) 存储欧拉角的数组。
offset (可选参数) 数组的偏移量。
返回一个数组:[x, y, z, order ]。

# .toVector3 ( optionalResult : Vector3 ) : Vector3

optionalResult — (可选参数) 如果指定了该参数结果将会被复制给该参数,否者会创建一个新的 Vector3

以 Vector3 的形式返回欧拉角的 x, y 和 z。

源码(Source)

src/math/Euler.js