Thanks for all the information!

You posted a lot, but I'll try to answer it all lol.

So the render area is 500x300. The map/image stays the same size, but I am only showing a 500x300 area of it, centered around the point I'm trying to find.

I'm not so concerned about what views ingame, but the area of view (500x300 in my program is meant to emulate the viewwindow of the game. I am reading the map data from the game, which has it in X/Y coordinates, but they display it in an isomorphic 35 (or maybe 45 degree, can't remember) rotation. So your X increases while walking on an angle, not while walking directly left/right.

I converted your code in your 2nd post and it is really close. I had to remove the "+x" and "+y" at the end, as that really threw off my numbers, but now I am getting the correct rotated X coordinate, but not the correct rotated Y coordinate.


C# Code:
  1. private Tuple<double, double> Rotate(int x, int y, double angle) {
  2.     angle = angle * Math.PI / 180;
  3.  
  4.     double xr = (x * Math.Cos(angle) - y * Math.Sin(angle));
  5.     double yr = (y * Math.Cos(angle) + x * Math.Sin(angle));
  6.  
  7.     return new Tuple<double, double>(xr, yr);
  8. }

So if I put in, 2548, 1412, -35 (seems to have to be negative.. I'm guessing the way it needs to rotate), it gives me 2897, -304, but my expected would be 2897, 2039. I'm not really sure what I need to adjust to get the Y coordinate calculating correctly.