Я пытаюсь отобразить координаты x, y, где размер окна составляет 600 пикселей на 600 пикселей. (0,0) будет вверху слева. (300 300) середина окна. (600 600) будет внизу справа. Я пытаюсь перевести широту/долготу в радианах в пиксели, а затем рисую их. Я рассчитываю 1px = ? лат по
`fabs(lborder+rborder)/600`
Я рассчитал lon, взяв верхнюю и нижнюю границы. Затем, когда я хочу найти конкретную позицию для определенной широты или долготы:
lat/(previous # calculated above)
Проблема в том, что мое окно изменяется от 0,0 до 600 600, как описано выше, и я могу получить отрицательные баллы, и я не знаю, как их перемещать, и я не знаю, как центрировать их вокруг 300 300, когда границы меняются.
На данный момент, пока я делаю центр (0,0) с точки зрения (x, y), а не пикселей, точки отображаются там, где они должны идти. Например, если x равен от -1 до 1, а y равен от -3 до 3, (300px,300px) будет (0,0).
Если я изменю границы, чтобы сказать, что x-0,5 на 1 и y-3 на 0,5, (300px,300px) будет (0,25, 1,25). Однако расчеты выше с этими цифрами.
1.5/600 = .0025 ----> 1px = .0025lat.
3.5/600 = .0058 ----> 1px = .0058lon.
Затем взяв среднюю точку (.25,1.25):
.25/.0025 = 100px
1.25/.0058 = 215px
что явно не 300 пикселей, 300 пикселей, несмотря на то, что он находится в центре графика.
Любые идеи будут чрезвычайно полезны.