Curve

.Curves. Curve

一个基础曲线类,所有其他曲线类型都扩展该类. 基于[zz85]创建的三个. js Curve类(http://www.lab 4 games.net/zz85/blog)

Constructor

new Curve(type)

Since:
  • 3.0.0
Parameters:
Name Type Description
type string 曲线类型.

Members

active :boolean

Since:
  • 3.0.0
Default Value:
  • true
对于路径上的曲线, `false` 表示路径将忽略该曲线.
Type:
  • boolean

arcLengthDivisions :number

Since:
  • 3.0.0
Default Value:
  • 100
曲线内弧长分割的数量.
Type:
  • number

cacheArcLengths :Array.<number>

Since:
  • 3.0.0
Default Value:
  • []
缓存弧长值的数组.
Type:
  • Array.<number>

defaultDivisions :number

Since:
  • 3.0.0
Default Value:
  • 5
曲线内的默认分割数.
Type:
  • number

needsUpdate :boolean

Since:
  • 3.0.0
Default Value:
  • true
这条曲线的数据需要更新吗?
Type:
  • boolean

type :string

Since:
  • 3.0.0
曲线类型的基于字符串的标识符.
Type:
  • string

Methods

draw(graphics, pointsTotalopt) → {Phaser.GameObjects.Graphics}

Since:
  • 3.0.0
在给定的图形对象上绘制这条曲线. 该曲线是使用 `Graphics.strokePoints` 绘制的,因此无论当前的图形笔画颜色是什么,都将被绘制. 绘图前图形对象未被清除,因此曲线将显示在已渲染的任何对象之上.
Parameters:
Name Type Attributes Default Description
graphics Phaser.GameObjects.Graphics 将在其上绘制该曲线的图形实例.
pointsTotal number <optional>
32 曲线的分辨率.值越高,渲染越平滑,但代价是渲染性能.
Returns:
绘制曲线的图形对象.
Type
Phaser.GameObjects.Graphics

getBounds(outopt, accuracyopt) → {Phaser.Geom.Rectangle}

Since:
  • 3.0.0
返回一个矩形,其位置和尺寸与该曲线的边界相匹配. 你可以控制边界的准确性.给定的值用来算出有多少个点 画出曲线.以计算速度为代价,值越高越精确.
Parameters:
Name Type Attributes Default Description
out Phaser.Geom.Rectangle <optional>
存储边界的矩形.如果为假,将创建一个新对象.
accuracy number <optional>
16 界限计算的准确性.
Returns:
保持该曲线边界的矩形对象.如果给了 `out` ,它将是这个对象.
Type
Phaser.Geom.Rectangle

getDistancePoints(distance) → {Array.<Phaser.Geom.Point>}

Since:
  • 3.0.0
返回一个点数组,间隔X个像素. 距离越小,数组就越大.
Parameters:
Name Type Description
distance number 曲线上各点之间的距离,以像素为单位.
Returns:
点对象的数组.
Type
Array.<Phaser.Geom.Point>

getEndPoint(outopt) → {Phaser.Math.Vector2}

Since:
  • 3.0.0
在曲线的末端得到一个点.
Parameters:
Name Type Attributes Description
out Phaser.Math.Vector2 <optional>
存储结果的可选矢量对象.
Returns:
包含曲线端点坐标的向量2.
Type
Phaser.Math.Vector2

getLength() → {number}

Since:
  • 3.0.0
获取总曲线弧长
Returns:
曲线的总长度.
Type
number

getLengths(divisionsopt) → {Array.<number>}

Since:
  • 3.0.0
获取累积段长度列表. 这些长度是 - [0] 0 - [1] 第一段 - [2] 第一和第二段 - ... - [部门]所有部门
Parameters:
Name Type Attributes Description
divisions number <optional>
分部或段的数量.
Returns:
累积长度的数组.
Type
Array.<number>

getPointAt(u, outopt) → {Phaser.Math.Vector2}

Since:
  • 3.0.0
通过弧长在曲线上的相对位置获得一个点.
Parameters:
Name Type Attributes Description
u number 相对位置,[0..1].
out Phaser.Math.Vector2 <optional>
存储结果的点.
Returns:
重点.
Type
Phaser.Math.Vector2

getPoints(divisionsopt, stepRateopt, outopt) → {array|Array.<Phaser.Math.Vector2>}

Since:
  • 3.0.0
从曲线上获得一系列均匀间隔的点. 你可以通过 `divisions` , `stepRate` ,或者都不通过. 分部的数量将为 1. `divisions`, if `divisions` > 0; or 2. `this.getLength / stepRate`, if `stepRate` > 0; or 3. `this.defaultDivisions` `1 + divisions` 积分将被退回.
Parameters:
Name Type Attributes Description
divisions number <optional>
要进行的划分的数量.
stepRate number <optional>
点与点之间的曲线距离,表示 `divisions` .
out array | Array.<Phaser.Math.Vector2> <optional>
存储点的可选数组.
Returns:
曲线上的一组点.
Type
array | Array.<Phaser.Math.Vector2>

getRandomPoint(outopt) → {Phaser.Math.Vector2}

Since:
  • 3.0.0
从曲线中得到一个随机点.
Parameters:
Name Type Attributes Description
out Phaser.Math.Vector2 <optional>
存储结果的点对象.
Returns:
重点.
Type
Phaser.Math.Vector2

getSpacedPoints(divisionsopt, stepRateopt, outopt) → {Array.<Phaser.Math.Vector2>}

Since:
  • 3.0.0
从曲线上获得一系列等距点(按弧线距离). `1 + divisions` 积分将被退回.
Parameters:
Name Type Attributes Default Description
divisions number <optional>
this.defaultDivisions 要进行的划分的数量.
stepRate number <optional>
点与点之间的距离.用于计算除法错误时返回的点数.如果除法是正数,则忽略.
out array | Array.<Phaser.Math.Vector2> <optional>
存储点的可选数组.
Returns:
一组点.
Type
Array.<Phaser.Math.Vector2>

getStartPoint(outopt) → {Phaser.Math.Vector2}

Since:
  • 3.0.0
在曲线的起点得到一个点.
Parameters:
Name Type Attributes Description
out Phaser.Math.Vector2 <optional>
存储结果的点.
Returns:
重点.
Type
Phaser.Math.Vector2

getTangent(t, outopt) → {Phaser.Math.Vector2}

Since:
  • 3.0.0
在曲线上的一个相对位置得到一个单位向量切线. 如果任何子曲线没有实现其正切求导, 相隔2点的一个小三角形将被用来寻找它的梯度 这似乎给出了一个合理的近似值
Parameters:
Name Type Attributes Description
t number 曲线上的相对位置,[0..1].
out Phaser.Math.Vector2 <optional>
存储结果的向量.
Returns:
Vector approximating the tangent line at the point t (delta +/- 0.0001)
Type
Phaser.Math.Vector2

getTangentAt(u, outopt) → {Phaser.Math.Vector2}

Since:
  • 3.0.0
通过弧长在曲线上的相对位置获取单位矢量切线.
Parameters:
Name Type Attributes Description
u number 曲线上的相对位置,[0..1].
out Phaser.Math.Vector2 <optional>
存储结果的向量.
Returns:
切线向量.
Type
Phaser.Math.Vector2

getTFromDistance(distance, divisionsopt) → {number}

Since:
  • 3.0.0
给定一个以像素为单位的距离,用t来求p.
Parameters:
Name Type Attributes Description
distance number 距离,以像素为单位.
divisions number <optional>
可选的分割数量.
Returns:
距离.
Type
number

getUtoTmapping(u, distance, divisionsopt) → {number}

Since:
  • 3.0.0
给定u ( 0.. 1),拿个t找p.这给了你等距的点.
Parameters:
Name Type Attributes Description
u number 介于0和1之间的浮点数.
distance number 距离,以像素为单位.
divisions number <optional>
可选的分割数量.
Returns:
等距值.
Type
number

updateArcLengths()

Since:
  • 3.0.0
See:
  • Phaser.Curves.Curve#getLengths()
计算并缓存弧长.