     super()
     @.length = Math.sqrt((A.x - B.x) ** 2 + (A.y - B.y) ** 2)
   move: (dx, dy) ->
-    return new Segment(@.points[0].move(x + dx, y + dy), @.points[1].move(x + dx, y + dy))
-  moveX: (dx) ->
-    return new Segment(@.points[0].move(x + dx, y), @.points[1].move(x + dx, y))
-  moveY: (dy) ->
-    return new Segment(@.points[0].move(x, y + dy), @.points[1].move(x, y + dy))
+    return new Segment(@.points[0].move(dx, dy), @.points[1].move(dx, dy)).setStrokeColor(@.strokeColor).setFillColor(@.fillColor)
   has: (P) ->
     A = @.points[0]
     B = @.points[1]

  setFont: (font) ->
    @.font = font
    return @
  name: () -> 'Text'
# }}}
class Image_ extends UnitaryObject# {{{

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