Panda Noir

JavaScript の限界を究めるブログです。

UnitaryJSにrotate()メソッドとGroupクラスを追加しました

これで六芒星を簡単に作れるようになりました。

使い方

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));

これで六芒星を使い放題です。便利。