地图坐标转换到屏幕坐标,给出A地图坐标和B地图坐标 算出A和B在屏幕坐标。求易语言详细的算法
地图坐标转换到屏幕坐标,给出A地图坐标和B地图坐标 算出A和B在屏幕坐标。求易语言详细的算法
地图坐标转换到屏幕坐标,给出A地图坐标和B地图坐标 算出A和B在屏幕坐标。求易语言详细的算法
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- 社区专家-Monster-XH 2023-02-16 12:46关注
基于Monster 组和GPT的调写:
要将地图坐标转换为屏幕坐标,需要知道地图的比例尺,即每个地图单位对应多少个屏幕像素。假设地图比例尺为1:100,即地图上每个单位对应100个像素,那么可以用以下算法将地图坐标转换为屏幕坐标:
1.获取窗口的分辨率,假设窗口分辨率为1280*720。
2.计算地图比例尺,假设地图比例尺为1:100,即每个地图单位对应100个像素。
3.获取A点的地图坐标,假设A点地图坐标为(3221, 3416)。
4.将A点地图坐标转换为屏幕坐标。假设A点在屏幕上的位置为(x1, y1),则有:x1 = 3221 / 100 y1 = 3416 / 100 (这里的100是地图比例尺)
5.获取B点的地图坐标,假设B点地图坐标为(3276, 3370)。
6.将B点地图坐标转换为屏幕坐标。假设B点在屏幕上的位置为(x2, y2),则有:x2 = 3276 / 100 y2 = 3370 / 100 (这里的100是地图比例尺)
7.知道了A点和B点在屏幕上的位置,可以计算B点在屏幕上的坐标。假设A点在屏幕上的坐标为(x1, y1),B点在屏幕上的坐标为(x2, y2),则有:
screen_width = 1280 screen_height = 720 B_screen_x = screen_width / 2 + (x2 - x1) B_screen_y = screen_height / 2 + (y2 - y1) (这里的screen_width和screen_height是窗口的分辨率,B_screen_x和B_screen_y是B点在屏幕上的坐标)
基于上述算法的易语言程序
// 定义地图比例尺 Const MapScale = 100; // 获取窗口分辨率 screen_width = GetClientWidth(); screen_height = GetClientHeight(); // 获取A点和B点的地图坐标 A_map_x = 3221; A_map_y = 3416; B_map_x = 3276; B_map_y = 3370; // 将地图坐标转换为屏幕坐标 A_screen_x = A_map_x / MapScale; A_screen_y = A_map_y / MapScale; B_screen_x = B_map_x / MapScale; B_screen_y = B_map_y / MapScale; // 计算B点在屏幕上的坐标 B_screen_x = screen_width / 2 + (B_screen_x - A_screen_x); B_screen_y = screen_height / 2 + (B_screen_y - A_screen_y); // 显示B点在屏幕上的坐标 MessageBox("B点在屏幕上的坐标为:" + B_screen_x + "," + B_screen_y);
定义了地图比例尺,然后获取了窗口的分辨率和A、B点的地图坐标。接着,将地图坐标转换为屏幕坐标,最后计算出B点在屏幕上的坐标,并显示在消息框中。注意的是,这个程序假设地图坐标的原点在窗口的中心,需要根据实际情况进行调整。另外,窗口的分辨率是动态变化的,需要根据实际情况获取分辨率。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 java代码写在记事本上后在cmd上运行时无报错但又没生成文件
- ¥15 关于#python#的问题:在跑ldsc数据整理的时候一直抱这种错误,要么--out识别不了参数,要么--merge-alleles识别不了参数(操作系统-linux)
- ¥15 PPOCRLabel
- ¥15 混合键合键合机对准标识
- ¥100 现在不懂的是如何将当前的相机中的照片,作为纹理贴图,映射到扫描出的模型上
- ¥15 魔霸ROG7 pro,win11.息屏后会显示黑屏,如图,如何解决?(关键词-重新启动)
- ¥15 有没有人知道这是哪里出了问题啊?要怎么改呀?
- ¥200 C++表格文件处理-悬赏
- ¥15 Windows Server2016本地登录失败
- ¥15 复合卡卡号轨道写入芯片卡