@Override
	protected void draw(Graphics2D g, float interpol,Vector offset) {
		List<Vector> points = new ArrayList<Vector>(vertices);
		
		float pointAngleInterval = tpi/vertices;
		float pointAngle = angle + interpol*angleSpeed;
		int radius = dims.width>>1;
		Vector interpolPosition = Vector.add(Vector.add(position,offset),Vector.scalar(interpol, velocity));
		Vector interpolCenterPosition = Vector.add(interpolPosition,new Vector(dims.width>>1,dims.height>>1));
		for (int i = 0; i < vertices; i++) {
			Vector pointOffset = new Vector((float)(radius*Math.cos(pointAngle)),(float)(radius*Math.sin(pointAngle)));
			points.add(Vector.add(pointOffset,interpolCenterPosition));
			
			pointAngle += pointAngleInterval;
		}
		
		// draw connecting lines
		
		g.setColor(Parameters.LINE_COLOR);
		for (int i = 0; i < vertices; i++) {
			Vector p1 = points.get(i);
			Vector p2 = points.get((i+1)%vertices);
			g.drawLine((int)p1.x, (int)p1.y, (int)p2.x, (int)p2.y);
		}
		
		
		//draw points
		int halfDotSide = dotSide>>1;
		g.setColor(Parameters.DOT_COLOR);
		for (Vector point : points) {
			g.fillRect((int)point.x - halfDotSide, (int)point.y - halfDotSide, dotSide, dotSide);
		}
		
		// draw Axis Aligned Bounding Box
//		g.setColor(Color.BLUE);
//		g.drawRect((int)interpolPosition.x, (int)interpolPosition.y, dims.width, dims.height);
		
		// draw number of vertices
		g.setColor(Color.YELLOW);
		g.drawString(""+vertices, interpolCenterPosition.x - 3, interpolCenterPosition.y + 2);
		
	}