请选择 进入手机版 | 继续访问电脑版
  • 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

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

[复制链接]
菜鸟教程小白 发表于 2022-12-13 17:23:29 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

希望有人可以帮助我

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

我会澄清一下,比方说:

矩形 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、谷歌、汤姆汤姆) .

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

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

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

谢谢!!!



Best Answer-推荐答案


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

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 - 如何计算2个非相似矩形之间的比例因子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13049709/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝0

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap