【发布时间】:2011-07-08 00:24:58
【问题描述】:
我正在从事一个涉及使用 A* 算法 (Thanks, Patrick Lester, for a great tutorial) 查找路径的项目。提供了一系列 PNG 地图,兴趣点由从 Web 服务接收的坐标指定,问题是显示这些点之间的路径。一开始有点灾难,因为各个级别不在同一个坐标系中,因此从一个级别移动到另一个级别涉及 x 和 y 坐标的无意移动,而不是仅更改 z - 使成本和启发式关卡变化非常奇怪,生成了一些非常不理想的路径。
为了解决这个问题,我可以将路径计算分解为每个级别的解决方案,并将移动到新级别作为中间的非计算步骤。相反,我选择让所有关卡地图成为一个坐标系的一部分,这样如果你在一个关卡上查看电梯,电梯就会出现在它到达的所有关卡上,并处于相同的 x 和 y 坐标。
唯一的问题是原始地图使用的兴趣点坐标。这些坐标与新地图上任何有意义的坐标都不匹配。虽然我确信路径现在运行良好,但系统作为一个整体并不是因为在地图系统中没有正确绘制路径的起点和终点。
为了从旧地图中获取新地图(都位于一个坐标空间中),每个地图都以一种简单且可重复的方式进行了转换。我想如果我得到一个坐标并对它应用与它所指的地图相同的变换,一切都会好起来的。地图被旋转、调整大小和平移。
给定一个图像和生成的变换图像,有没有办法推导出变换矩阵?这是一个 iPhone 项目,所以理想情况下我正在寻找一个 CGAffineTransform。对于每张地图,我都可以再次操作旧地图以获取新地图并记录正在完成的转换,但我很好奇这里是否有办法向后工作。
(读者——如果你能更好地标记这个问题,请做,这有点超出我的范围)
【问题讨论】:
-
变换是仿射变换,所以不是严格意义上的矩阵
-
我不清楚您是否有原始 POI 和转换后的 POI,因此您可以写下转换方程
-
我在原始地图的坐标系中有 POI。我有原始地图和转换后的地图。我希望使用原始地图和转换后的地图(主要来自学术兴趣)得出转换,以便我可以将其应用于 POI,将它们转换为新地图的坐标系。如果可以派生转换,我可以从旧地图和新(转换后的)地图中获取一些任意 POI。
标签: iphone graphics 2d transform