My bad, @Bobrocket corrected me, but I found this
public Point minimapTranslate(Position pos) {
//Get local position coordinates
int x = pos.getX() - getMap().getBaseX();
int y = pos.getY() - getMap().getBaseY();
//Get the players current offset from the provided position
//Using grid coordinates we get a more accurate result when we're in
//the process of walking between two tiles.
//1 tile = 2 units, in rX and rY
int rX = (x * 4 + 2) - (myPlayer().getGridX() / 32);
int rY = (y * 4 + 2) - (myPlayer().getGridY() / 32);
//Get the current minimap position and camera rotation offsets.
//these are often changing even without moving/rotating the camera.
//^ This is probably to prevent autoclicking
int offset = client.accessor.getMinimapX();
int minimapAngle = client.accessor.getMinimapRotation();
int angle = minimapAngle + offset & 0x7FF;
//Calculates the sine and cosine vars to be used for rotation from the
//minimap center. The minimap zoom is also random and often changing.
//These are scaled up to improve accuracy in the following calculations
int sin = (GraphicUtilities.CAMERA_SIN[angle] * 256) / (client.accessor.getMinimapZoom() + 256);
int cos = (GraphicUtilities.CAMERA_COS[angle] * 256) / (client.accessor.getMinimapZoom() + 256);
//Standard trigonometry; calculate the offset from minimap centre
//Then downscale the result by right shift. We use 16 instead of 8 due to the unit of
//rX and rY being doubled in comparison to real X,Y coords
int mX = rY * sin + rX * cos >> 16;
int mY = rY * cos - rX * sin >> 16;
//Return the point. 644 and 80 are the minimap X, Y coordinates
return new Point(644 + mX, 80 - mY);
}
You can do
g.drawOval(minimapTranslate(position.get(i)).x -4, minimapTranslate(position.get(i)).y -2, 6, 6);