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

Curve.getUtoTmapping()

介绍

在three.js中,Curve.getUtoTmapping()方法是用来通过给定U值来获取T值的函数。这个函数可以在对曲线进行动画处理时非常有用。

语法

curve.getUtoTmapping(u, distance);

参数

u:一个介于0和1之间的值。代表曲线上的一个点,函数将会返回曲线上离该点最近的点的参数T值。

distance:可选的参数,如果设置,函数将会返回此时的距离。

返回值

函数返回一个包含两个属性的对象:

t:曲线上离给定U值最近的点的参数T值。

distance:如果传入了distance参数,则会返回从给定点到最近曲线点的距离。

使用示例

var curve = new THREE.EllipseCurve(
  0, 0, // x, y
  5, 3, // aX, aY
  0, Math.PI, // aStartAngle, aEndAngle
  false, // aClockwise
  0, // aRotation
);

var point = curve.getPoint(0.5);

var u = curve.getUtoTmapping(point.x, point.y);
var t = u.t; // 获取参数T值
var distance = u.distance; // 获取距离

console.log('t:', t);
console.log('distance:', distance);

注意事项

  • U和T值的范围都是0~1之间的实数。
  • 如果曲线不存在,则函数将会返回null。
  • 如果给定的U值不在曲线的范围内,则函数将会返回离给定U值最近的曲线点的参数T值。