Triangle
Introduction¶
Triangle shape and methods, built-in methods of phaser.
- Author: Richard Davey
Usage¶
Create shape¶
var triangle = new Phaser.Geom.Triangle(x1, y1, x2, y2, x3, y3);
Clone shape¶
var triangle1 = Phaser.Geom.Triangle.Clone(triangle0);
Equilateral triangle¶
var triangle = Phaser.Geom.Triangle.BuildEquilateral(x1, y1, length);
Right triangle¶
var triangle = Phaser.Geom.Triangle.BuildRight(x1, y1, width, height);
Polygon to triangles¶
var out = Phaser.Geom.Triangle.BuildFromPolygon(data);
// var out = Phaser.Geom.Triangle.BuildFromPolygon(data, holes, scaleX, scaleY);
// out = Phaser.Geom.Triangle.BuildFromPolygon(data, holes, scaleX, scaleY, out);
data
: A flat array of vertice coordinates like[x0,y0, x1,y1, x2,y2, ...]
out
: Array of triangles
Draw on graphics¶
- Fill shape
// graphics.fillStyle(color, alpha); // color: 0xRRGGBB graphics.fillTriangleShape(triangle);
- Stroke shape
// graphics.lineStyle(lineWidth, color, alpha); // color: 0xRRGGBB graphics.strokeTriangleShape(triangle);
Set properties¶
- All properties
or
triangle.setTo(x1, y1, x2, y2, x3, y3);
Phaser.Geom.Triangle.CopyFrom(source, dest);
- Position
or
triangle.x1 = 0; triangle.y1 = 0; triangle.x2 = 0; triangle.y2 = 0; triangle.x3 = 0; triangle.y3 = 0;
ortriangle.left = 0; // triangle.x1, triangle.x2, triangle.x3 triangle.top = 0; // triangle.y1, triangle.y2, triangle.y3 // triangle.right = 0; // triangle.x1, triangle.x2, triangle.x3 // triangle.bottom = 0; // triangle.y1, triangle.y2, triangle.y3
orPhaser.Geom.Triangle.Offset(triangle, dx, dy); // triangle.x += dx, triangle.y += dy
Phaser.Geom.Triangle.CenterOn(triangle, x, y);
- Rotate
- Rotate around center (incenter)
var triangle = Phaser.Geom.Triangle.Rotate(triangle, angle);
angle
: Radian
- Rotate around point
var triangle = Phaser.Geom.Triangle.RotateAroundPoint(triangle, point, angle);
point
:{x, y}
angle
: Radian
- Rotate around (x,y)
var triangle = Phaser.Geom.Triangle.RotateAroundXY(triangle, x, y, angle);
angle
: Radian
- Rotate around center (incenter)
Get properties¶
- Position
or
var x1 = triangle.x1; var y1 = triangle.y1; var x2 = triangle.x2; var y2 = triangle.y2; var x3 = triangle.x3; var y3 = triangle.y3; var top = triangle.top; var left = triangle.left; var right = triangle.right; var bottom = triangle.bottom;
var out = Phaser.Geom.Triangle.Decompose(triangle); // out: [{x1,y1}, {x2,y2}, {x3,y3}] // var out = Phaser.Geom.Triangle.Decompose(triangle, out);
- Perimeter
var perimeter = Phaser.Geom.Triangle.Perimeter(triangle);
- Area
var area = Phaser.Geom.Triangle.Area(triangle);
- Lines around triangle
var line12 = rect.getLineA(); // line from (x1, y1) to (x2, y2) var line23 = rect.getLineB(); // line from (x2, y2) to (x3, y3) var line31 = rect.getLineC(); // line from (x3, y3) to (x1, y1)
- Centroid
var out = Phaser.Geom.Triangle.Centroid(triangle); // out: {x,y}
- Incenter
var out = Phaser.Geom.Triangle.InCenter(triangle); // out: {x,y} // var out = Phaser.Geom.Triangle.InCenter(triangle, out);
- Circumcenter
var out = Phaser.Geom.Triangle.CircumCenter(triangle); // out: {x,y} // var out = Phaser.Geom.Triangle.CircumCenter(triangle, out);
- Circumcircle
var out = Phaser.Geom.Triangle.CircumCircle(triangle); // out: a circle object // var out = Phaser.Geom.Triangle.CircumCircle(triangle, out);
- Type:
var type = triangle.type; // 6
Point(s) & shape¶
- Get point at shape's edge
var point = triangle.getPoint(t); // t : 0 ~ 1 (angle/360) // var point = triangle.getPoint(t, point); // modify point
- Get a random point inside shape
var point = triangle.getRandomPoint(); // var point = triangle.getRandomPoint(point); // modify point
- Get points around shape's edge
or calculate quantity from steps
var points = triangle.getPoints(quantity); // var points = triangle.getPoints(quantity, null, points); // push points
var points = triangle.getPoints(false, step); // var points = triangle.getPoints(false, step, points); // push points
points
: an array of point
- Point is inside shape
or
var isInside = triangle.contains(x, y);
var isInside = Phaser.Geom.Triangle.ContainsPoint(triangle, point);
- Points inside shape
var out = Phaser.Geom.Triangle.ContainsArray(triangle, points, returnFirst); // var out = Phaser.Geom.Triangle.ContainsArray(triangle, points, returnFirst, out);
out
: Points inside trianglereturnFirst
: True to get fist matched point
- Points inside shape
Equal¶
var isEqual = Phaser.Geom.Triangle.Equals(triangle0, triangle1);
Position and radius are equal.
Intersection¶
Triangle to circle¶
- Is intersection
var result = Phaser.Geom.Intersects.TriangleToCircle(triangle, circle);
- Get intersection points
var result = Phaser.Geom.Intersects.GetTriangleToCircle(triangle, circle); // var out = Phaser.Geom.Intersects.GetTriangleToCircle(triangle, circle, out);
Triangle to rectangle¶
- Is intersection
var result = Phaser.Geom.Intersects.RectangleToTriangle(rect, triangle);
- Get intersection points
var result = Phaser.Geom.Intersects.GetRectangleToTriangle(rect, triangle); // var out = Phaser.Geom.Intersects.GetRectangleToTriangle(rect, triangle, out);
Triangle to triangle¶
- Is intersection
var result = Phaser.Geom.Intersects.TriangleToTriangle(triangleA, triangleB);
- Get intersection points
var result = Phaser.Geom.Intersects.GetTriangleToTriangle(triangleA, triangleB); // var out = Phaser.Geom.Intersects.GetTriangleToTriangle(triangleA, triangleB, out);
Triangle to line¶
- Is intersection
var result = Phaser.Geom.Intersects.TriangleToLine(triangle, line);
- Get intersection points
var result = Phaser.Geom.Intersects.GetTriangleToLine(triangle, line); // var out = Phaser.Geom.Intersects.GetTriangleToLine(triangle, line, out);