获得位图中两点之间的像素数

问题描述

| 我是C#.NET的初学者。我正在进行一个处理进近图的项目。此图包含跑道的周围区域,飞机可以在该区域飞行以便着陆。 此地图是位图图像。它在图像的边界上包含经度和纬度! 现在,该项目的目的是根据地图边界上的给定地质坐标来获取地图上各点的地理坐标(纬度/经度)(当鼠标单击或悬停在该点上时)。我们输入点的经度/纬度坐标,然后再对地图上的其他点进行插值。 假设在任意两个经度之间存在X个像素,在任意两个纬度之间存在Y个像素。如果我们设置了参考点,则根据所距像素的距离(分别从参考点到x和y方向的像素数)将鼠标悬停或单击鼠标可以在一个小窗口中获得该点的经度/纬度(可能类似于工具提示或弹出窗口)。 插值周围的数学公式可以是: 新纬度=参考纬度+ [参考纬度(仅分钟)/ Y] *(参考点与新点之间的垂直距离,以像素为单位) 新长=参考长-[参考长(仅分钟)/ X] *(参考点和新点之间的水平距离,以像素为单位)。 在运行方式的中心(在图形的中心)有一个称为中点的点。我还需要找到将中点和新点(鼠标悬停或单击)与线的顶点连接的线所成的角度。地图。 所以任何人都请给我一些想法,例如如何启动该项目以及什么东西(工具栏控件,方法),无论我单击哪个位置,我都需要构建包含图片窗口和弹出窗口(包含有关该点或像素的信息)的GUI。鼠标。谢谢。     

解决方法

标题中提出的问题如下:
double distance = Math.Sqrt(Math.Pow(x2 - x1,2) + Math.Pow(y2 - y1,2));
那就是平面上两个点之间的距离,因此也就是位图上的距离。 体内提出的问题根本无法轻易回答。如果有给定的地图,则定义两个坐标之间的距离的函数可能不是线性的。这是有关地图投影的文章,显示了一些不同的地图类型。为了能够计算出所需的内容,您首先需要知道您实际上正在处理哪种类型的地图,从而相应地调整公式。 如果您的地图尺寸很小,则可能不会有太大的不同。您在某个地方谈论过一条跑道,如果仅是一个机场,那么投影不一定是一个问题。如果要计算不同机场的两个跑道之间的距离,那将是另一回事。     ,您的问题非常符合您的需求,其中一些要素本身就是问题。您可能需要将其分解为几个问题,或者单独研究每个项目。例如 您将需要研究WPF或Windows窗体。 您将需要学习如何计算两点之间的角度。