     for val in @.points
       points[length] = val.move(dx, dy)
       length = 0|length+1
-    return new Polygon.fromArray(points).setStrokeColor(@.strokeColor).setFillColor(@.fillColor)
+    return new Polygon(points).setStrokeColor(@.strokeColor).setFillColor(@.fillColor)
   name: () -> 'Polygon'
 # }}}
 class Quadrilateral extends Polygon# {{{

      .add(vB.multiple(b * (c + a - b)))
      .add(vC.multiple(c * (a + b - c)))
      .multiple(1 / (16 * (S ** 2)))
    O = new Point.fromVector(vO)
    cosA = vB.minus(vA).product(vC.minus(vA)) / (AB.length * CA.length)
    sinA = Math.sqrt(1 - cosA ** 2)
    R = BC.length / sinA / 2

      .add(vA.multiple(a / (a + b + c)))
      .add(vB.multiple(b / (a + b + c)))
      .add(vC.multiple(c / (a + b + c)))
    O = new Point(vO.x, vO.y)
    r = 2 * @.getArea() / (a + b + c)
    return new Circle(O, r)
  getArea: () ->
