Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 导出给定图像和变换图像的变换矩阵?_Iphone_Graphics_2d_Transform - Fatal编程技术网

Iphone 导出给定图像和变换图像的变换矩阵?

Iphone 导出给定图像和变换图像的变换矩阵?,iphone,graphics,2d,transform,Iphone,Graphics,2d,Transform,我正在做一个项目,涉及使用a*算法查找路径。提供了一系列PNG地图,兴趣点由从web服务接收的坐标指定,问题是要显示这些点之间的路径。一开始这是一场灾难,因为各个级别不在同一个坐标系中,因此从一个级别移动到另一个级别涉及到x和y坐标的无意移动,而不仅仅是改变z坐标-使得级别更改的成本和启发性完全奇怪,生成了一些非常非最优的路径 为了解决这个问题,我可以将路径计算分解为每个级别的解决方案,并将其移动到一个新级别,作为一个中间的、未计算的步骤。相反,我选择将所有标高贴图作为一个坐标系的一部分,这样,

我正在做一个项目,涉及使用a*算法查找路径。提供了一系列PNG地图,兴趣点由从web服务接收的坐标指定,问题是要显示这些点之间的路径。一开始这是一场灾难,因为各个级别不在同一个坐标系中,因此从一个级别移动到另一个级别涉及到x和y坐标的无意移动,而不仅仅是改变z坐标-使得级别更改的成本和启发性完全奇怪,生成了一些非常非最优的路径

为了解决这个问题,我可以将路径计算分解为每个级别的解决方案,并将其移动到一个新级别,作为一个中间的、未计算的步骤。相反,我选择将所有标高贴图作为一个坐标系的一部分,这样,如果您在一个标高上查看电梯,电梯将在其到达的所有标高上以相同的x和y坐标显示

唯一的问题是原始地图使用的兴趣点坐标。这些坐标与新地图上的任何有意义的东西都不匹配。虽然我相信路径现在工作得很好,但整个系统并不是因为路径的起点和终点没有在地图系统中正确绘制

为了从旧地图中获取新地图(所有地图都位于一个坐标空间中),每个地图都以一种简单且可重复的方式进行了转换。我想如果我得到一个坐标,并对它应用与它所指的地图相同的变换,一切都会好起来。贴图将旋转、调整大小和平移

给定一个图像和得到的变换图像,有没有方法导出变换矩阵?这是一个iPhone项目,所以理想情况下我正在寻找一个CGAffineTransform。对于每个地图,我可以再次操纵旧地图以获得新地图并记录正在进行的转换,但我很好奇是否有一种方法可以在这里向后工作


(读者们-如果你能帮我更好地标记这个问题,请这样做,这有点超出我的范围)

我只略读了你的问题-对不起!但从标题和一点数学知识来看,似乎应该有办法。使用一些矩阵代数:

xA = B

//Where A is the original image, B is the transform, and x is the transform matrix. 
//Now to find x:

x = B(A^-1)
i、 e.将两边乘以A的倒数将允许您找到x,即变换矩阵(有关矩阵倒数的更多信息,请参阅)


我不太确定,你将如何将其应用于CGAffineTransform,或者在你的例子中找到图像的倒数!但是上面的数学表明你的要求是绝对可行的。希望这有帮助

要查找变换,您需要最小的点坐标(原始坐标和变换坐标)等于参数数量

如果您使用的是图像,而不是完美的几何实体,那么计算会更好。通过使用更多的点,可以减少空间量化(即像素)引起的误差

如果您搜索for,您将找到用于此目的的多个函数的代码,包括Python中的代码


变换是仿射变换,所以它不是严格意义上的矩阵。我不清楚你是否有原始的泊松点和变换后的泊松点,所以你可以写下变换的方程。我在原始地图的坐标系中有泊松点。我有原始地图和转换后的地图。我希望使用原始地图和转换后的地图(主要是出于学术兴趣)导出转换,以便将其应用于POI,将其转换为新地图的坐标系。我可以从旧的和新的(转换的)映射中获取一些任意的poi,如果这可以派生转换的话。OP需要一个
仿射
转换,而不是线性转换。虽然相似,但仿射变换的数学并不像线性变换那样简洁@贝里萨里乌斯谢谢你纠正我-我不知道是这样的!