繁体   English   中英

获取 bitmap 中两点之间的像素数

[英]get the pixel count between two points in a bitmap

我是 C#.NET 的初学者。我正在进行一个处理进场地图的项目。这个 map 包含跑道的周边区域,飞机可以在那里飞行以着陆。 此 map 是 bitmap 图像。它包含图像边界上的经度和纬度!

现在该项目的目的是根据 map.so 边界上的给定地质坐标获取 map 上点的地质坐标(纬度/经度)(当用鼠标单击或悬停在该点上时)我们给出一个点的输入,其纬度/经度坐标 map 上的其他点可以插值。

假设在任意两个经度之间有 X 像素,在任意两个纬度之间有 Y 像素。如果我们设置一个参考点,则取决于正在被测量的像素的距离(分别在 x 和 y 方向上与参考点的像素数)通过鼠标指针悬停或单击,我们可以在一个小窗口中获取该点的纬度/经度(可能像工具提示或弹出窗口)。

围绕插值的数学可以是:

新纬度 = 参考纬度 + [参考纬度(仅分钟)/Y] *(参考点和新点之间的垂直距离,以像素为单位)

new long= ref long - [ref long(仅分钟)/X] *(参考点和新点之间的水平距离,以像素为单位)。

在运行方式的中心(在图形的中心)有一个称为中点的点。我还需要找到由线连接中点和新点(鼠标悬停或点击的位置)与垂直的角度map。

所以任何人请给我一些想法如何启动项目以及我需要什么东西(工具栏控件,方法)来构建包含图片 window 的 gui 和弹出窗口(包含有关该点或像素的信息)我点击mouse.thanks 提前。

标题中提出的问题回答如下:

double distance = Math.Sqrt(Math.Pow(x2 - x1, 2) + Math.Pow(y2 - y1, 2));

这是平面上两点之间的距离,因此在 bitmap 上。

身体里问的问题一点都不好回答。 如果您有给定的 map,则定义两个坐标之间距离的 function 可能不是线性的。 这是一篇关于Map 投影的文章,它显示了一些不同的 map 类型。 为了能够计算出您需要什么,您首先需要知道您实际使用的是哪种 map,然后相应地调整您的公式。

如果您的 map 尺寸很小,这可能没什么区别。 您曾经谈论过跑道,如果这仅适用于一个机场,那么投影不一定是问题。 如果您正在计算不同机场的两条跑道之间的距离,那将是另一回事。

您的问题完全符合您的需求,并且有一些元素本身可能是问题。 您可能希望将其分解为几个问题,或者独立研究每个项目。 例如

您需要查看WPFWindows Forms

您需要学习如何计算两点之间的角度

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM