Polygon

.Geom. Polygon

多边形对象 多边形是一个封闭的形状,由一系列由有序点列表定义的相连直线组成. 支持多种格式来定义点列表,详情请查看setTo方法. 这是一个几何对象,允许您定义和检查形状. 它不是一个游戏对象,因为你不能把它添加到显示列表中,而且它没有纹理. 要渲染多边形,您应该查看图形类的功能.

Constructor

new Polygon(pointsopt)

Since:
  • 3.0.0
Parameters:
Name Type Attributes Description
points string | Array.<number> | Array.<Phaser.Types.Math.Vector2Like> <optional>
定义此多边形周长的点列表.支持几种格式: - 一个字符串,包含由单个空格分隔的成对x y值: `40 0 40 20 100 20 100 80 40 80 40 100 0 50` - 点对象数组: `[新相位器.点(x1,y1),...].` s - 具有公共x-y属性的对象数组: `[obj1,obj2,...].` s - 代表点坐标的成对数字数组: `[x1,y1,x2,y2,...].` s - 由两个元素组成的数组,代表x/y坐标: `[[x1,y1],[x2,y2],...].` s

Members

area :number

Since:
  • 3.0.0
Default Value:
  • 0
这个多边形的面积.
Type:
  • number

points :Array.<Phaser.Geom.Point>

Since:
  • 3.0.0
组成此多边形的一组数字对对象.即.[{x,y},{x,y},{x,y}]
Type:

(readonly) type :number

Since:
  • 3.19.0
此对象的几何常量类型: `GEOM_CONST .多边形` . 用于快速类型比较.
Type:
  • number

Methods

(static) Clone(polygon) → {Phaser.Geom.Polygon}

Since:
  • 3.0.0
创建一个新的多边形,它是指定多边形的副本
Parameters:
Name Type Description
polygon Phaser.Geom.Polygon 要创建克隆的多边形
Returns:
基于相同的点,从指定多边形克隆的新的独立多边形.
Type
Phaser.Geom.Polygon

(static) Contains(polygon, x, y) → {boolean}

Since:
  • 3.0.0
检查点是否在多边形的边界内.
Parameters:
Name Type Description
polygon Phaser.Geom.Polygon 要检查的多边形.
x number 要检查的点的X坐标.
y number 要检查的点的Y坐标.
Returns:
如果该点在多边形的边界内,则为 `true` ,否则为 `false` .
Type
boolean

(static) ContainsPoint(polygon, point) → {boolean}

Since:
  • 3.0.0
再次检查多边形的给定点,查看该点是否位于其顶点内.
Parameters:
Name Type Description
polygon Phaser.Geom.Polygon 要检查的多边形.
point Phaser.Geom.Point 检查它是否在多边形内的点.
Returns:
如果点在多边形内,则为 `true` ,否则为 `false` .
Type
boolean

(static) Earcut(data, holeIndicesopt, dimensionsopt) → {Array.<number>}

Since:
  • 3.50.0
该模块实现了一种改进的耳切片算法,该算法通过z阶曲线哈希进行了优化,并扩展到 以不保证正确性的方式处理孔洞,扭曲多边形,退化和自相交 三角测量法,但试图总是为实际数据产生可接受的结果. 示例: ```javascript const triangles = Phaser.Geom.Polygon.Earcut([10,0, 0,50, 60,60, 70,10]); // returns [1,0,3, 3,2,1] ``` 结果数组中的每组三个顶点索引组成一个三角形. ```javascript // triangulating a polygon with a hole earcut([0,0, 100,0, 100,100, 0,100, 20,20, 80,20, 80,80, 20,80], [4]); // [3,0,4, 5,4,0, 3,4,7, 5,0,1, 2,3,7, 6,5,1, 2,7,6, 6,1,2] // triangulating a polygon with 3d coords earcut([10,0,1, 0,50,2, 60,60,3, 70,10,4], null, 3); // [1,0,3, 3,2,1] ``` 如果您将单个顶点作为孔通过,Earcut会将其视为斯坦纳点. 如果您的输入是多维数组(例如.GeoJSON多边形),您可以将其转换为以下格式 Earcut期望的是带有 `Phaser.geom.polygon.Earcut.flaten`: ```javascript var data = earcut.flatten(geojson.geometry.coordinates); var triangles = earcut(data.vertices, data.holes, data.dimensions); ``` 得到一个三角剖分后,可以用 `Phaser.geom.polygon.earcut.deviation` 验证其正确性: ```javascript var deviation = earcut.deviation(vertices, holes, dimensions, triangles); ``` 返回三角形总面积与输入多边形面积之间的相对差值. 0表示三角测量完全正确. 有关更多信息,请参见https://github.com/mapbox/earcut
Parameters:
Name Type Attributes Default Description
data Array.<number> 顶点坐标平面阵列,如[x0,y0,x1,y1,x2,y2,...].
holeIndices Array.<number> <optional>
孔指数阵列(如果有的话)(例如.[5,8]对于12顶点输入意味着一个孔的顶点为5–7,另一个孔的顶点为8–11).
dimensions number <optional>
2 输入数组中每个顶点的坐标数(默认为2).
Returns:
三角测量数据阵列.
Type
Array.<number>

(static) GetAABB(polygon, outopt) → {Phaser.Geom.Rectangle|object}

Since:
  • 3.0.0
计算多边形的边界AABB矩形.
Parameters:
Name Type Attributes Description
polygon Phaser.Geom.Polygon 应该计算的多边形.
out Phaser.Geom.Rectangle | object <optional>
具有x,y,宽度和高度属性来存储结果的矩形或对象.可选.
Returns:
传递多边形AABB的位置和尺寸的结果矩形或对象.
Type
Phaser.Geom.Rectangle | object

(static) GetNumberArray(polygon, outputopt) → {array|Array.<number>}

Since:
  • 3.0.0
按照[x,y,x,y,x,y]的顺序将多边形的所有点存储到一个平面数字阵列中, 即.多边形的每个点,按照定义的顺序,对应于结果的两个元素 点的X和Y坐标的数组.
Parameters:
Name Type Attributes Description
polygon Phaser.Geom.Polygon 要导出其点的多边形.
output array | Array.<number> <optional>
点的坐标应该附加到的数组.
Returns:
修改后的 `output` 数组,如果没有给出新数组,则为新数组.
Type
array | Array.<number>

(static) GetPoints(polygon, quantity, stepRateopt, outputopt) → {Array.<Phaser.Geom.Point>}

Since:
  • 3.12.0
返回一个点对象数组,包含多边形周长周围点的坐标, 基于给定的数量或步进率值.
Parameters:
Name Type Attributes Description
polygon Phaser.Geom.Polygon 从中获取点的多边形.
quantity number 要返回的点数.如果值为假,数量将改为从 `stepRate` 中得出.
stepRate number <optional>
通过获取多边形的周长并将其除以步长来设置数量.
output array <optional>
要插入点的数组.如果不提供,将创建一个新数组.
Returns:
与多边形周长周围的点相关的点对象的数组.
Type
Array.<Phaser.Geom.Point>

(static) Perimeter(polygon) → {number}

Since:
  • 3.12.0
返回给定多边形的周长.
Parameters:
Name Type Description
polygon Phaser.Geom.Polygon 要获取周长的多边形.
Returns:
多边形的周长.
Type
number

(static) Reverse(polygon) → {Phaser.Geom.Polygon}

Since:
  • 3.0.0
反转多边形各点的顺序.
Parameters:
Name Type Description
polygon Phaser.Geom.Polygon 要修改的多边形.
Returns:
修改后的多边形.
Type
Phaser.Geom.Polygon

(static) Simplify(polygon, toleranceopt, highestQualityopt) → {Phaser.Geom.Polygon}

Since:
  • 3.50.0
获取一个多边形对象,并通过组合使用 道格拉斯-普克和径向距离算法.简化大大减少了 多边形中的点,同时保持其形状,在处理时极大地提高了性能 它还能减少视觉噪音.
Parameters:
Name Type Attributes Default Description
polygon Phaser.Geom.Polygon 要简化的多边形.多边形将被就地修改并返回.
tolerance number <optional>
1 影响简化量(与点坐标的度量相同).
highestQuality boolean <optional>
false Excludes distance-based preprocessing step which leads to highest quality simplification but runs ~10-20 times slower.
Returns:
输入多边形.
Type
Phaser.Geom.Polygon

(static) Smooth(polygon) → {Phaser.Geom.Polygon}

Since:
  • 3.13.0
获取多边形对象,并在其点上应用柴金平滑算法.
Parameters:
Name Type Description
polygon Phaser.Geom.Polygon 要平滑的多边形.多边形将被就地修改并返回.
Returns:
输入多边形.
Type
Phaser.Geom.Polygon

(static) Translate(polygon, x, y) → {Phaser.Geom.Polygon}

Since:
  • 3.50.0
转换给定多边形的点.
Parameters:
Name Type Description
polygon Phaser.Geom.Polygon 要修改的多边形.
x number 水平平移点的量.
y number 垂直平移点的量.
Returns:
修改后的多边形.
Type
Phaser.Geom.Polygon

calculateArea() → {number}

Since:
  • 3.0.0
计算多边形的面积.这在多边形区域属性中可用
Returns:
多边形的面积.
Type
number

contains(x, y) → {boolean}

Since:
  • 3.0.0
检查多边形是否包含给定的x / y坐标.
Parameters:
Name Type Description
x number 要在多边形内检查的x坐标.
y number 要在多边形内检查的y坐标.
Returns:
如果坐标在多边形内,则为 `true` ,否则为 `false` .
Type
boolean

getPoints(quantity, stepRateopt, outputopt) → {array|Array.<Phaser.Geom.Point>}

Since:
  • 3.12.0
返回一个点对象数组,包含多边形周长周围点的坐标, 基于给定的数量或步进率值.
Parameters:
Name Type Attributes Description
quantity number 要返回的点数.如果值为假,数量将改为从 `stepRate` 中得出.
stepRate number <optional>
通过获取多边形的周长并将其除以步长来设置数量.
output array | Array.<Phaser.Geom.Point> <optional>
要插入点的数组.如果不提供,将创建一个新数组.
Returns:
与多边形周长周围的点相关的点对象的数组.
Type
array | Array.<Phaser.Geom.Point>

setTo(pointsopt) → {this}

Since:
  • 3.0.0
将此多边形设置为给定点. 这些点可以从多种格式中设置: - 包含由单个空格分隔的成对值的字符串: `40 0 40 20 100 20 100 80 40 80 40 100 0 50` - 点对象数组: `[新相位器.点(x1,y1),...].` s - 具有公共x/y属性的对象数组: `[obj1,obj2,...].` s - 代表点坐标的成对数字数组: `[x1,y1,x2,y2,...].` s - 由两个元素组成的数组,代表x/y坐标: `[[x1,y1],[x2,y2],...].` s 也可以在没有任何参数的情况下调用 `setTo` 来移除所有点.
Parameters:
Name Type Attributes Description
points string | Array.<number> | Array.<Phaser.Types.Math.Vector2Like> <optional>
定义此多边形周长的点.请查看上面的功能描述,了解支持的不同格式.
Returns:
这个多边形对象.
Type
this