これで六芒星を簡単に作れるようになりました。
使い方
var r = 30; var triangle = new Triangle( new Point(Math.cos(1 / 2 * Math.PI) * r, Math.sin(1 / 2 * Math.PI) * r), new Point(Math.cos(1 / 2 * Math.PI + 2 / 3 * Math.PI) * r, Math.sin(1 / 2 * Math.PI + 2 / 3 * Math.PI) * r), new Point(Math.cos(1 / 2 * Math.PI + 4 / 3 * Math.PI) * r, Math.sin(1 / 2 * Math.PI + 4 / 3 * Math.PI) * r) ).move(r + 10, r + 10); triangle.rotate(Math.PI);
PolygonとPointに実装しました。TriangleやQuadrilateralもPolygonを継承してるのでrotate()を使えます。
rotate()は引数に回転角と回転の中心をとります。三角形の場合のみ回転の中心を省略できます。省略した場合三角形の重心を中心に回転します。
rotate()とGroupを使うと簡単に六芒星を作れます。
var hexagram = new Group(triangle, triangle.rotate(Math.PI));
これで六芒星を使い放題です。便利。