### Question:
RendererUtil { public static List<Position> getCircle(Position position, double radiusKm, double numPoints) { List<Position> positions = new ArrayList<Position>(); for (int i = 0; i < numPoints; i++) { double bearing = 360.0 * i / numPoints; Position p = position.predict(radiusKm, bearing).normalizeLongitude(); positions.add(p); } positions.add(positions.get(0)); return positions; }  static void useAntialiasing(Graphics2D g); static List<GeneralPath> toPathGreatCircle(Projector projector, List<Position> positions); static List<GeneralPath> toPath(Projector projector, List<Position> positions); static Point2D[] getPoints(Projector projector, List<Position> positions); static List<Position> getCircle(Position position, double radiusKm, double numPoints); static void draw(Graphics2D g, List<? extends Shape> shapes); static void fill(Graphics2D g, List<? extends Shape> shapes);  }### Answer:
@Test public void testGetCircle() { ProjectorTarget target = new ProjectorTarget(300, 200); ProjectorBounds bounds = new ProjectorBounds("EPSG:3857", 14288114.828624, -6061227.593083, 18907357.32131, -2348222.5076192); Projector projector = new Projector(bounds, target); List<GeneralPath> paths = RendererUtil.toPath(projector, RendererUtil.getCircle(position(-35.3075, 149.1244), 400, 36)); for (GeneralPath path : paths) { System.out.println("Path"); PathIterator it = path.getPathIterator(null); double[] values = new double[6]; while (!it.isDone()) { int code = it.currentSegment(values); if (code == PathIterator.SEG_MOVETO) { System.out.println("moveto " + values[0] + "," + values[1]); } else if (code == PathIterator.SEG_LINETO) { System.out.println("lineto " + values[0] + "," + values[1]); } else { System.out.println("code=" + code); } it.next(); } } }