2D Circle Texture Rotation?

So I have this randomly generated set of tiles that is wrapped in a circle and I’m not really sure how to scroll it around the circle. Basically it’s a side-view planet that is in 2D and needs to be wrapped and moving at a controllable rate to give the illusion of planet rotation. I’ll post my current render code below so you can get an idea of what I’m working with but I’m not really sure what to do to the x and y to make it scroll around. I want every tile except the water tiles to move from left to right and then wrap around the circle. Here’s what a planet looks like: https://imgur.com/Ytdz2mG

for (int x = 0; x < planet1.length; x++)
    {
        for (int y = 0; y < planet1[0].length; y++)
        {
            if (planet1[x][y] == 1 || planet1[x][y] == 2)
            {
                g.drawImage(water, x * 32, y * 32);
            }
            else if (planet1[x][y] == 3)
            {
                g.drawImage(desert, x * 32, y * 32);
            }
            else if (planet1[x][y] == 4)
            {
                g.drawImage(plains, x * 32, y * 32);
            }
            else if (planet1[x][y] == 5)
            {
                g.drawImage(grassland, x * 32, y * 32);
            }
            else if (planet1[x][y] == 6)
            {
                g.drawImage(forest, x * 32, y * 32);
            }
            else if (planet1[x][y] == 7)
            {
                g.drawImage(hills, x * 32, y * 32);
            }
            else if (planet1[x][y] == 8)
            {
                g.drawImage(mountain, x * 32, y * 32);
            }
            else if (planet1[x][y] == 9)
            {
                g.drawImage(mountain, x * 32, y * 32);
            }
            else if (planet1[x][y] == -1)
            {
 
            }
        }
    }

I’m not sure I understand you correctly. Do you want to rotate around Z-axis? (assuming X is left-right, Y is up-down, and Z is in-out of screen) Or do you want to make an illusion of a spinning sphere?

Circle is 2D, sphere is 3D I believe. Which one do you want?

Sorry I meant I wanted the 2D circle and I want the tiles to move from the left to the right and when they reach the end of the circle to wrap around back to the left and start again.

Here is a function I use:


public Vertex2d rotate(Vertex2d target,Vertex2d rotation_point,float angle){
		float cos = (float)Math.cos(angle);
		float sin = (float)Math.sin(angle);
		float nx = target.x - rotation_point.x;
		float ny = target.y - rotation_point.y;
		
		
		return new Vertex2d(((nx * cos) - (ny * sin)) + rotation_point.x,((nx * sin) + (ny * cos))+ rotation_point.y);
	}

I would suggest that firstly you rotate the actual draw coordinates by that and then rotate each image by the rotation about the centre point of the texture. It’s been a very long time since I have used .drawImage so im not too familiar but im pretty sure there is a Graphics2d.rotate function