返回介绍

手册

参考

示例

开发者参考

Curve

发布于 2021-07-10 14:14:15 字数 4754 浏览 1134 评论 0 收藏 0

An abstract base class for creating a Curve object that contains methods for interpolation. For an array of Curves see CurvePath.

Constructor

Curve()

This constructor creates a new Curve.

Properties

.arcLengthDivisions : Integer

This value determines the amount of divisions when calculating the cumulative segment lengths of a curve via .getLengths. To ensure precision when using methods like .getSpacedPoints, it is recommended to increase .arcLengthDivisions if the curve is very large. Default is 200.

Methods

.getPoint ( t : Float, optionalTarget : Vector ) : Vector

t - A position on the curve. Must be in the range [ 0, 1 ].
optionalTarget — (optional) If specified, the result will be copied into this Vector, otherwise a new Vector will be created.

Returns a vector for a given position on the curve.

.getPointAt ( u : Float, optionalTarget : Vector ) : Vector

u - A position on the curve according to the arc length. Must be in the range [ 0, 1 ].
optionalTarget — (optional) If specified, the result will be copied into this Vector, otherwise a new Vector will be created.

Returns a vector for a given position on the curve according to the arc length.

.getPoints ( divisions : Integer ) : Array

divisions -- number of pieces to divide the curve into. Default is 5.

Returns a set of divisions + 1 points using getPoint( t ).

.getSpacedPoints ( divisions : Integer ) : Array

divisions -- number of pieces to divide the curve into. Default is 5.

Returns a set of divisions + 1 equi-spaced points using getPointAt( u ).

.getLength () : Float

Get total curve arc length.

.getLengths ( divisions : Integer ) : Array

Get list of cumulative segment lengths.

.updateArcLengths () : null

Update the cumlative segment distance cache.

.getUtoTmapping ( u : Float, distance : Float ) : Float

Given u in the range ( 0 .. 1 ), returns t also in the range ( 0 .. 1 ). u and t can then be used to give you points which are equidistant from the ends of the curve, using .getPoint.

.getTangent ( t : Float, optionalTarget : Vector ) : Vector

t - A position on the curve. Must be in the range [ 0, 1 ].
optionalTarget — (optional) If specified, the result will be copied into this Vector, otherwise a new Vector will be created.

Returns a unit vector tangent at t. If the derived curve does not implement its tangent derivation, two points a small delta apart will be used to find its gradient which seems to give a reasonable approximation.

.getTangentAt ( u : Float, optionalTarget : Vector ) : Vector

u - A position on the curve according to the arc length. Must be in the range [ 0, 1 ].
optionalTarget — (optional) If specified, the result will be copied into this Vector, otherwise a new Vector will be created.

Returns tangent at a point which is equidistant to the ends of the curve from the point given in .getTangent.

.computeFrenetFrames ( segments : Integer, closed : Boolean ) : Object

Generates the Frenet Frames. Requires a curve definition in 3D space. Used in geometries like TubeGeometry or ExtrudeGeometry.

.clone () : Curve

Creates a clone of this instance.

.copy ( source : Curve ) : Curve

Copies another Curve object to this instance.

.toJSON () : Object

Returns a JSON object representation of this instance.

.fromJSON ( json : Object ) : Curve

Copies the data from the given JSON object to this instance.

Source

src/extras/core/Curve.js

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文