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

ShapePath.splineThru()

ShapePath.splineThru()three.jsShapePath 类的方法之一。 它接受一组 Vector2 对象作为参数,并使用样条函数将这些点连接起来形成平滑的曲线。

语法

splineThru(points: Vector2[])
  • points:一组 Vector2 对象,用于形成曲线。

返回值

该方法没有返回值。它通过修改 ShapePath 实例上的 curves 属性来创建曲线。

示例

const shape = new THREE.Shape();

const points = [
  new THREE.Vector2(0, 0),
  new THREE.Vector2(10, 10),
  new THREE.Vector2(20, 5),
  new THREE.Vector2(30, 15),
  new THREE.Vector2(40, 0)
];

shape.moveTo(points[0].x, points[0].y);
const path = new THREE.ShapePath();
path.splineThru(points);

shape.curves = path.curves;

注意事项

  • 曲线是通过将点与样条函数连接而成,而不是通过实际计算图形。这可能会导致一些不理想的效果,例如过度弯曲或形状变形。
  • 使用 ShapePath.splineThru() 之前,必须首先调用 Shape.moveTo(),指定形状中的起始点。
  • 请注意,曲线中的点比 points 数组中指定的点要多。这是因为样条函数需要一些额外的点来使曲线平滑连接。
  • 如果需要使用 ShapePath.splineThru() 创建曲线,请确保使用 Vector2,不要使用 Vector3 或其他类型的向量。否则,可能会得到意外的结果。