ios - 如何计算两个不相似矩形之间的比例因子

标签 ios image dictionary scale

希望有人能帮助我:)

我正在尝试将 map (纬度,经度)中的点缩放到图像(x,y)。 为此,我需要找到两个不相似的矩形之间的比例因子(我认为)。

我会澄清一下,比方说:

矩形 1:A(40.0, 50.0) B(40.0, 56.0) C(43.0, 56.0) D(43.0, 50.0)

(纬度增量 = 3,经度增量 = 6)。

矩形 2:E(0, 0) F(500, 0) G(500, 300) H(0, 300)

(X 增量 = 500,Y 增量 = 300)。

如何将点 P(41.5, 52.5) 从矩形 1 缩放到矩形 2 上的点 (x, y)?

更新:

总体思路:

我正在尝试在自定义图像(不是 map 图像,而是我自己的绘图)上显示用户当前位置(纬度、经度),因此我无法使用 map (MKMapKit、Google、Tom-Tom) 。

我有用户当前位置(通过 CoreLocation)和图像 (800x460)。

我正在绘制的区域很小,所以我不需要担心地球的曲线。

我正在尝试找到一个公式来帮助我将用户(纬度、经度)位置缩放到我的图像(在我的 iPhone 屏幕上)

谢谢!!!

最佳答案

嗯,获得与第一个矩形相似但适合第二个矩形的矩形并不难。方法如下:

CGRect rect1, rect2; //your rectangles.
float scale = MIN(rect1.size.width / rect2.size.width , rect1.size.height / rect2.size.height);
CGRect resultedRect;
resultedRect.origin = rect2.origin;
resultedRect.size = CGSizeMake(rect2.size.width * scale, rect2.size.height * scale); 
//resultedRect is similar with rect1 but fits in rect2. You can now multiply your point with "scale" and get the new position.

我不确定这是否是您想要实现的目标。

问候,

乔治

关于ios - 如何计算两个不相似矩形之间的比例因子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13049709/

相关文章:

ios - Facebook iOS SDK 3.1 在后续调用 FBSession openWithBehavior 时崩溃

c# - 使用 OpenXML 将图像插入 DocX 并设置大小

php - 如何使用 php 查找最暗的像素?

python - 简明的 Ruby 哈希等同于 Python dict.get()

python - 将多个项目添加到字典中

android - 手机跨平台实时更新

ios - 在 Swift 中将不同的表格单元格导航到不同的 UIVewController

iphone - 为什么 CFRunLoopRun 不起作用?

html - 超链接不适用于图像

c# - 字典方法 Remove 和 Clear (.NET Core) 在枚举期间修改集合。没有抛出异常