根据预设坐标

时间:2016-09-12 02:38:57

标签: vb.net math maps

首先,我不确定这是否是正确的地方,所以我道歉,如果这属于其他地方 - 如果有,请告诉我。我目前正在用VB进行一些原型设计,这就是我首先来到这里的原因。

我的目标

我正在尝试制作一个程序,以便能够为我玩的视频游戏记录不同类型的信息。我希望能够用我的程序绘制出整个游戏,并为小怪,资源等添加位置。

我有什么

游戏地图可以下载,所以我真的只是把它作为背景图像粘在表格上(就目前而言)。我下载的地图并不完全与游戏中的地图一样,因为游戏会在滚动时为所有内容添加额外的水。这使得匹配地图的原点在游戏中的位置与下载的地图上的位置相比有点棘手。

但不错的是,当我在游戏中时,我可以将当​​前坐标打印到屏幕上。所以我想也许我可以用某种方式来计算地图上其余点的正确计算。

以下是我现在将参考的示例图片:Example Map

在上面的地图中,您将看到一个虚线边界框。这是游戏中一个看不见的盒子,一旦你将鼠标移出经度,纬度点将不再显示。这就是我在上面提到的,当我的意思是我找不到游戏地图的确切原点时。

你还会看到2分:A和B.在游戏中有传送器。这就是我用来获得最准确位置的方法。我想我可以找到A点和B点的位置(在游戏中),然后以某种方式将其计算为VB中鼠标拖动事件的转换。

在VB中,屏幕从左上角开始,为0,0。我已经尝试得到这样的2个点,只是将数字加到或减去鼠标的x和y像素位置,但它没有完全对齐。

所有这些信息都有人知道是否有可能根据这种数据将lon / lat转换为像素?

我感谢任何想法和建议,如果您需要对我发布的任何信息进行任何澄清,请告诉我,我将很乐意对其进行扩展。我真的希望我能解决这个问题!

谢谢!

编辑:

我还想提一下,我不确定游戏地图中是否有精确的像素到纬度/经度点。即在游戏地图中可以是1像素= 100纬度或其他东西。所以我可能还需要弄清楚转换号是什么?

1 个答案:

答案 0 :(得分:0)

关于像素位置与纬度和经度之间的转换的一些说明。

首先,游戏中的地图位于几何坐标系中,这意味着所有内容都位于2D中,您可以通过计算像素位置来测量两点之间的距离。

但是当我们谈论经度和纬度时,我们实际上是在谈论地理坐标系,这是一个3D'关于地球表面的球体模型。通过称为投影的一步,将地球上的所有地图从3D渲染到2D。像谷歌地图或你的GPS。在这个投影过程中,3D模型转换为2D模型,但总会有一部分地图受到折磨,因此地图上相同的像素距离实际上可能会有不同的长度。

因此,如果您不关心准确性,那么您可以将几何点视为地理点。否则,您需要实现一些GIS库来处理测地距离,并根据投影坐标系计算地理点。