我试图绘制x,y坐标,其中窗口大小为600px乘600px。 (0,0)将在左上角。 (300,300)中间的窗户。 (600,600)将位于右下方。 我试图将弧度的纬度/经度转换为像素,然后绘制它们。 我计算1px =?拉
`fabs(lborder+rborder)/600`
我通过采用顶部和底部边框来计算lon。 然后,当我想找到特定纬度或经度的特定位置时:
lat/(previous # calculated above)
问题是我的窗口从0,0到600,600,如上所述,我可以得到负面点,我不知道如何移动它们,我不知道如何将它们集中在300,300左右边界发生了变化。
目前,只要我根据(x,y)而不是像素制作中心(0,0),就可以在他们应该去的地方绘制点。 例如,如果x是-1到1而y是-3到3,(300px,300px)将是(0,0)。
如果我将界限改为x -.5为1,y-3为.5,则(300px,300px)为(.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
尽管是图表的中心,但显然不是300px,300px。
任何想法都会非常有用。
答案 0 :(得分:1)
如果您想将坐标调整到中心,那么可能是这样的事情吗?
Coord coordsFromCenter(Coord old_coord, float height, float width)
{
Coord new_center;
float new_x_center = width/2.0;
float new_y_center = height/2.0;
new_center.set_x(old_coord.get_x() - new_x_center);
new_center.set_y(old_coord.get_y() - new_y_center);
return new_center;
}