Box2
2D空间中的盒子
构造函数
Box2(min: Vector2,max:Vector2)
属性
- min 表示框的下边界。默认(+Infinity,+Infinity)
- max 表示框的上边界。默认(-Infinity,-Infinity)
方法
- clampPoint(point,target) 将点夹在盒子的范围之内
- containsBox(box)/containsPoint(point) 返回true/false来确认包含关系
- copy(Box2)
- distanceToPoint(point) 点在box内部返回0
- equals(box) 确认是否有相同的上下界
- expandByPoint(point) 扩展box的边至到包括了point
- expandByScalar(float) 负值时box将缩小
- expandByVector(vector2) 矢量等距离扩展box
- getCenter(target)
- getParameter(point,target) 返回一个box宽高等比的点
- getSize(target) 返回box的宽高
- intersect(box):Box 返回相交的部分,上界较小的,下界较大的
- intersectsBox(box): Boolean 框和框是否相交
- isEmpty() box的边界上零个点返回true
- makeEmpty()
- set(min,max)
- setFromCenterAndSize(center,size)
- setFromPoints(points: Array)
- translate(offset) 2D空间偏移
- union(box) 上界为最大的,下界为最小的
Box3
构造函数
Box3(min: Vector3,max:Vector3)
属性
方法
- applyMatrix4(matrix4) 通过矩阵来转换box3
- expandByObject(object: Object3D)
- getBoundingSphere(target: Sphere) 返回Sphere对象
- intersectsPlane(plane: Plane) 返回Boolean
- intersectsSphere(sphere: Sphere) 返回Boolean
- setFromBufferAttribute(attribute: BufferAttribute) 上下界应包含所有的数据
- setFromObject(object: Object3D)
- 其他和Box2一样,参数格式不一样而已
Color
构造函数
Color(r: COlor_Hex_or_String,g: float,b:float)
参数可选,表示方法多样
rgb(255,0,0)/rgb(100%,0,0)/hsl(0,100%,50%)/0xffffff/red/1,0,0"
属性
- isColor
- r 默认1,红色通道值0-1
- g 默认1,路色通道值0-1
- b 默认1,蓝色通道值0-1
方法
- add(color)
- addColors(color1,color2)
- addScalar(s: Number) 增加s到RGB的值上面
- clone()
- copy(color)
- convertGammaToLinear(gammaFactor: float) 参数默认2,从线性空间到伽马空间,取r,g,b相应的gammaFactor的幂
- convertLinearToGamma(gammaFactor: float) 参数默认2,从线性空间到伽马空间,取r,g,b相应的1/gammaFactor的幂
- copyGammaToLinear(color,gammaFactor: float)
- copyLinearToGamma(color,gammaFactor: float)
- convertSRGBToLinear()
- convertLinearToSRGB()
- copySRGBToLinear(color)
- copyLinearToSRGB(color)
- equlas(color)
- fromArray(array,offset) array匹配 [ r, g, b ].
- getHex() 返回类型Integer 十六进制的值
- getHexString() 如
FFFFFF
- getHSL(target) 返回Object 如
{ h: 0, s: 0, l: 0 }
- getStyle() 返回值的css样式,如
rgb(255,0,0)
- lerp(color,alpha) 线性差值,alpha被认为是两个颜色的比率,取值[0-1]
- lerpHSL(color,alpha)
- multiply(color)
- multiplyScalar(s:Float)
- offsetHSL(h: float,s,l)
- set(color_hex_or_string)
- setHex(hex)
- setHSL(h,s,l)
- setRGB(r,g,b)
- setScalar(scalar) 参数范围0.0-1.0
- setStyle(style: String) 如
rgb(255, 255, 255)
- sub(color) 减去的结果为负值,将结果设置为0
- toArray(array,offset)
Cylindrical
构造函数
Cylindrical( radius : Float, theta : Float, y : Float )
radius 默认1.0
theta: 从正z轴以弧度表示的x-z平面的逆时针角度。默认值为0
y x-z平面的的高度,默认是0
方法
- clone()
- copy(other)
- set( radius : Float, theta : Float, y : Float )
- setFromVector3(vector3) 将圆柱体的三个参数用向量值来代替
- setFromCartesianCoords(x:float,y,z) 从笛卡尔坐标设置
Euler
构造函数
Eular(x,y,z,order)
x,y,z默认0,弧度表示各个轴旋转;order默认XYZ
表示默认的旋转顺序,必须大写。
属性
- isEuler 默认true
- order: String 表示物体的前面单个参数旋转的轴的顺序,order改变时
onChangeCallback
将会被调用
- x: float
- y: float
- z: float
方法
- clone()
- copy(euler)
- equals(euler)
- fromArray(array) x轴array[0],y轴array[1],z轴array[2],order是array[3]
- reorder(newOrder: String) 新的顺序重置欧拉角
- onChange(onChangeCallback) 设置onChangeCallback函数的值
- onChangeCallback() 让修改了想x,y,z,或者order时调用的函数
- set(x,y,z[,order])
- setFromRotationMatrix(matrix4[,order,update: Boolean]) update决定是否调用onChangeCallback函数
- setFromQuaternion(quaternion[,order,update])
- setFromVector3(vector3[,order])
- toArray([array,offset]) offset数组中的偏移,默认返回[x,y,z,order]
- toVector3([optionResult: Vector3]) 可选参数optionResult 结果传递的对象
Frustum
视锥体,主要用于内部渲染器,来确定什么是在相机的视野内,有助于加速渲染过程
构造函数
Frustum([p0 : Plane,...,p5: Plane])
属性
- plane: Array 有6参数的数组
方法
- clone()
- containPoint(point: Vector3)
- copy(frustum)
- intersectsBox(box3)
- interstctsObject(object)
- interstcesSphere(sphere)
- intersectsSprite(sprite)
- set(p0,p1,p2,p3,p4,p5)
- setFromMatrix(matrix)
Interpolant
参数样本上插值的抽象基类
构造函数
Interpolant( parameterPositions, sampleValues, sampleSize, resultBuffer )
方法
- evaluate(t: Number) 计算位置t除的插值
Line3
构造函数
Line3(start:Vector3,end:Vector3)
方法
- applyMatrix(matrix4)
- clone()
- copy(line)
- at(t: float,target:V3) t=0 返回起点;t=1 返回终点,结果将会复制到target中
- closestPointToPoint(point,clampToLine: Boolean,target) clampToLine 为true时将找的的点夹在线段中
- closestPointToPointParameter(point,clampToLine) 线段上投影的最近点参数,clampToLine为真时反之值介于0-1
- delta(target) 结果返回到target,返回线段的增量向量
- equals(line)
- getCenter(target) 结果返回到target
- distanceSq() 返回距离的平方
- set(start,end)
Math
方法
- clamp(value,min,max)
- degToRad(degree: float)
- generateUUID()
- euclideanModulo(n,m)
((n%m)+m)%m
欧几里得模
- isPowerofTwo(n: Number)
- radToDeg(rad)
- lerp(x: float,y,t) t[0,1] 插值
- mapLinear(a,al,a2,b1,b2) x从范围[a1,a2]到范围[b1,b2]的线性映射
- ceilPowerofTwo(n: Number) 返回大于n的最小的2的幂
- floorPowerOfTwo(n)
- randFloat(low,high) 返回一个随机数基于low和high之间的
- randFloatSprate(range) 浮动范围[-range/2,range/2]
- randInt(low,high)
- smoothstep(x,min,max) 返回一个0-1之间的值。x在min和max之间移动的百分比,但随着x与min和max的距离减小或减慢
- smootherstep(x,min,max)
Matrix3
构造函数
Matrix3()
特性
- element : Float32Array
- isMatrix3
方法
- clone()
- copy(matrix3)
- applyToBufferAttribute(attribute: BufferAttribute)
- determinant() 返回行列式
- equals(matrix3)
- fromArray(array,offset)
- getInverse(matrix3, throwOnDegenerate: Boolean) 矩阵的逆,不可逆转时返回3*3恒等矩阵
- indentity() 重置恒等单位矩阵
- multiply(matrix3)
- multiplyMatrices(matrix3,matrix3)
- multiplyScalar(s)
- set(n11,n12,n13,n21,n22,n23,n31,n32,n33)
- premultiply(matrix)
- setFromMatrix4(matrix4)
- setUvTransform(tx,ty,sx,sy,ration,cx,cy) tx offset x; sx repeat x;cx 旋转的x
- toArray(array,offset)
- transpose() 转置矩阵
- transposeIntoArray(array)
Matrix4
属性
- elements
- isMatrix4
方法
- applyToBufferAttribute(attribute)
- clone()
- compose(position,quaternion,scale) 将矩阵设置成三个参数组成的变换
- copy(matrix)
- copyPosition(matrix)
- decompose(position,quaternion,scale) 将矩阵转换成各自参数的内容传递给参数
- determinant() 行列式
- equals(matrix)
- extractBasis(xAxis: vector3,yAxis,zAxis)
a, b, c, d,
e, f, j, h,
i, j, k, l,
m, n, o, p,
xAxis = (a, e, i);
yAxis = (b, f, j);
zAxis = (c, j, k);
- extractRotation(matrix)
- fromArray(array,offset) offset 默认1
- getInverse(matrxi,throwOnDegenerate)
- getMaxScaleOnAxis() 获取三个轴的最大缩放量
- indentity()
- lookAt(eye,center,up)
- makeRotationAxis(axis,theta: Float) theta 弧度
- makeBasic(xAxis,yAxis,zAxis)
- makePerspective(left,right,top,bottom,near,far) PerspectiveCamera.updateProjectionMatrix()内部使用的
- makeOrthographic(left,right,top,bottom,near,far)
- makeRotationFromEuler(euler)
- makeRotationFromQuaternion(quaternion)
- makeRotationX(theta)
- makeRotationy(theta)
- makeRotation(theta)
- makeScale(x,y,z)
- makeShear(x,y,z) 剪切变换
- makeTranslation(x,y,z)
- multiply(matrx)
- multiplyMatrices(matrix1,matrix2)
- multiplyScalar(s)
- premultiply(matrix)
- scale(vevtor3)
- set(n11,…,m44)
- setPosition(vector3)
- toArray(array, offset)
- transpose() 转换
Plane
在三维空间无限延申的二维曲面
构造函数
Plane([normal: Vector3,constant: Float])
前者默认(1,0,0) 后者默认0,远点到平面的距离
方法
- applyMatrix(matrix,optionNormalMatrix)
- clone()
- copy()
- coplanarPoint(target) 计算原点处的法向量在面上的投影
- equals(plane)
- intersecLine(line,target) 返回交点
- intersectsBox(box) 返回Boolean
- intersectsLine(line) 返回Boolean
- intersectsSphere(sphere) 返回Boolean
- negate()
- distanceToPoint(point)
- distanceToSphere(sphere)
- normalize()
- projectPoint(point,target) 将点投射到面上
- set(normalize,const)
- setComponents(x,y,z,w)
- setFromCoplanarPoines(a:Vector3,b,c) 三个点定义平面,绕线逆时针
- setFromNormalAndCoplanarPoint(normal,point)
- translate(offset)
Quaternion
旋转对象,不会遇到万向锁 的问题
构造函数
Quaternion(x,y,z,w)
更改任何一个将触发调用onChangeCallback
方法
- clone()
- copy(q)
- equals(q)
- angleTo(q) 返回两个四元数之间的弧度
- conjugate()
表示绕旋转轴相反方向的相同旋转,
var quaternion = new THREE.Quaternion();
quaternion.setFromAxisAngle(v3,Math.PI/2);
intersect[0].object.parent.applyQuaternion(quaternion.conjugate());
//quaternion.conjugate() 等同于quaternion.setFromAxisAngle(v3,-Math.PI/2); 反方向旋转90°
- dot()点积 得到一个在另一个上投影的乘积,越相似值越大
- fromArray(arr,offset) 从数组arr中设置四元数中设置x,y,z,w属性
- toArray(arr,offset) arr可选,存储四元数,没参数则新创建一个 返回四元数到数组[x,y,z,w]
- inverse() 计算conjugate然后normalize
- length() 计算四元数的欧式长度(直线长),它被认为是一个四维向量
- lengthSq() 比较两个四元数长度时用得到,比length()稍微高效
- normalize() 单位化,让长度为1
- multiply(q)
- premultiply(q)
- multiplyQuaternions(q1,q2)
- onChange(onChangeCallback) 设置onChangeCallback方法
- onChangeCallback() 只要x,y,z,w特性发生变化或者那些有关影响这四个值的函数调用就会调用
- rotationTowards(q,step: Flloat) 确保最后的四元数不会超过q
- slerp(q,t:Float) t 插值因子[0,1] 处理四元数之间的球面线性插值
- set ( x : Float, y : Float, z : Float, w : Float ) : Quaternion
- setFromAxisAngle(axis: Vector3,angle: Float) 设置在轴旋转的弧度,轴必须长度为1,及单位化,角度为弧度
- setFromEuler(euler) 通过Euler角度来设置四元数
- setFromRotationMatrix(m4) 通过矩阵来设定四元素
- setFromUnitVectors(vFrom,vTo)
静态方法
- slerp(qStart,qEnd,qTarget,t) qStart t=0,qEnd t =1, qTarget 设定为结果值 ,为slerp操作的结果
- slerpFlat(dst,dstOffset,src0,srcOffset0,src1,srcOffset1,t) dst输出数组
Ray
从起始点发射光线,被Raycaster 用来协助光线投射
构造函数
Ray(origin,direction)
origin ,默认(0,0,0)
direction 必须是单位长度,Vector3.normalize(),射线的方向,默认(0,0,0)
方法
- applyMatrix4(m4): Ray 通过矩阵来改变Ray
- at(t:Float,target:Vector3): Vector3 得到一个沿着射线给定距离的坐标
- clone()/copy(ray)
- closestPointToPoint(point,target):Vector3 沿着光线得到离point最近的点,赋值给target
- distanceSqToPoint(point:V3)
- distanceToplane(plane)
- distanceToPoint(point)
- distanceSqToSegment(v0,v1,optionalPointOnRay,optionalPointOnSegment)
- equlas(ray)
- intersectBox(box3,target)
- intersectPlane(plane,target)
- intersectSphere(sphere,target)
- intersectTriangle(v1,v2,v3,backfaceCulling:Boolean,target)
- intersectsBox/Plane/Sphere(box/plane/sphere) Ray和目标相交时返回true
- lookAt(v) 调整Ray的射线的方向,在世界坐标中
- recast(t: Floa) 沿光线进行插值的距离
- set(origin,direction) direction必须Vector3.normalize() 规格化
Sphere
构造函数
Sphere(center,radius: float)
- center 默认(0,0,0)
- radius 默认0
方法
- applayMatrix4(m)
- clampPoint(point,target)
- clone()
- copy(sphere)
- distanceToPoint(point)
- empty() 设置半径为0
- equals(sphere)
- getBoundingBox(box3) 获取最小的边界
- intersectsBox(box3)
- intersectsSphere(sphere)
- intersectsPlane(plane)
- set(center,radius)
- setFromPoints(points: Array,optionCenter)
- translate(offset) 偏移中心点
Spherical
一个点的球坐标
构造函数
Spherical( radius : Float, phi : Float, theta : Float )
- radius 默认1.0
- phi 默认0.0
- theta 默认0.0
极(Phi)位于正y轴和负y轴。赤道(θ)从正z开始
方法
- clone()
- copy(s)
- makeSafe() 限制极在0.000001到-0,000001
- set(radius,phi,theta)
- setFromVector3(v)
- setFromCartesianCoords(x,y,z)
Triangle
构造函数
Triangle( a : Vector3, b : Vector3, c : Vector3 )
方法
- clone()
- closetPointToPoint(point,target)
- copy(t)
- equals(t)
- getArea()
- getBarycoord(point, target) 返回重心坐标
- getMidpoint(target) 计算中点
- containsPoint(point)
- getNormal(target)
- getPlane(plane)
- intersectsBox(box)
- setFromPointsAndIndices(points:Array,i0: Intefer,i1,i2)
Vector2
构造函数
Vector2(x,y)
属性
方法
- add(v)
- addScale(s)
- addScaledVector(v,s)
- addVectors(v1,v2)
- angle() 相对于正x轴,
- applyMatrix3(m)
- ceil()
- clamp(min: vector2,max)
- clampLength(min: Float,max)
- clampScalar(min: Float,max)
- clone()
- copy(v)
- distanceTo(v)
- manhattanDistanceTo(v)
- distanceToSquared(v)
- divide(v)
- divideScalar(s)
- dot(v)
- cross(v)
- equlas(v)
- floor()
- fromArray(v,offset)
- fromBufferAttribute(attribute,index)
- getComponent(index)
- length() 到原点的直线距离
- manhanttanLength()
- lengthSq()
- lerp(v,alpha)
- lerpVectors(v1,v2,alpha)
- negate() 设置 x= -x,y = -y
- normalize()
- max(v) 向量的某一个轴参数小于参数的,就用参数对应的来代替
- min(v)
- multiply(v)
- multiplyScalar(s)
- rotateAround(center,angle)
- round()
- roundToZero()
- set(x,y)
- setComponet(index,value)
- setLength(l)
- setScalar(scalar)
- setX(x)
- setY(y)
- sub(v)
- subScalar(s)
- subVector(a,b)
- toArray(array,offset)
Vector3
方法
- add(v)
- addScale(s)
- addScaledVector(v,s)
- addVectors(v1,v2)
- applyAxisAngle(axis,angle)
- applyEuler(euler)
- applyMatrix3(m)
- applyMatrix4(m)
- applyQuaternion(q)
- angleTo(v)
- ceil()
- clamp(min: vector3,max)
- clampLength(min: Float,max)
- clampScalar(min: Float,max)
- clone()
- copy(v)
- distanceTo(v)
- manhattanDistanceTo(v)
- distanceToSquared(v)
- divide(v)
- divideScalar(s)
- dot(v)
- cross(v)
- crossVectors(a,b)
- equlas(v)
- floor()
- fromArray(v,offset)
- fromBufferAttribute(attribute,index)
- getComponent(index)
- length() 到原点的直线距离
- manhanttanLength()
- lengthSq()
- lerp(v,alpha)
- lerpVectors(v1,v2,alpha)
- negate() 设置 x= -x,y = -y
- normalize()
- max(v) 向量的某一个轴参数小于参数的,就用参数对应的来代替
- min(v)
- multiply(v)
- multiplyScalar(s)
- rotateAround(center,angle)
- peoject(camera)
- projectOnVector(v)
- reflect(normal)
- round()
- roundToZero()
- set(x,y,z)
- setComponet(index,value)
- setFromCylindrical©
- setFromCylindricalCoords(radius,theta,y)
- setFromMatrixColumn(matrix4,index)
- setFromMatrixPosition(m4)
- setFromMatrixScalar(m4)
- setFromSpherical(s)
- setFromSphericalCoords(radius,phi,theta)
- setLength(l)
- setScalar(scalar)
- setX(x)
- setY(y)
- setZ(z)
- sub(v)
- subScalar(s)
- subVector(a,b)
- transformDirection(m4)
- unproject(camera)
- toArray(array,offset)
Vector4
构造方法
Vector4(x,y,z,w)
方法
- add(v)
- addScale(s)
- addScaledVector(v,s)
- addVectors(v1,v2)
- applyMatrix4(m)
- ceil()
- clamp(min,max)
- clampLength(min,max)
- clampScalar(min: float,max)
- clone()
- copy(m)
- divideScalar(s)
- dot()
- equals(v)
- floor()
- fromArray(array,offset)
- fromBufferAttribute(attribute,index)
- getComponent(index)
- length()
- lengthSq()
- lerp(v,float)
- lerpVectors(v1,v2,alpha)
- negate()
- normalize()
- max()
- min()
- multiplyScalar(s)
- round()
- roundToZero()
- set(x,y,z,w)
- setAsixAngleFromRotationMatrix(m)
- setComponent(index,value)
- setLength(l)
- setScalar(s)
- setX(x)
- setY(y)
- setZ(z)
- setW(w)
- sub()
- subScalar(s)
- subVectors(a,b)
- toArray(array,offset)