将点坐标转换为新的坐标系
Posted
技术标签:
【中文标题】将点坐标转换为新的坐标系【英文标题】:Convert point coordinates to a new coordinate system 【发布时间】:2012-08-16 14:43:08 【问题描述】:假设我有一个坐标为 (50,100) 的点,其中 (0,0) 位于视图的左上角。
如果我希望坐标系的起点是屏幕的中心(即宽度/2,高度/2),如何获取同一点的坐标?
请注意,我正在实现一个自定义视图,并且我正在其中进行绘图,我只想在同一个视图中转换坐标。我基本上是在实现一个图形计算器,我需要让我的坐标系从屏幕中间开始,这样图形才能看起来更好。
【问题讨论】:
【参考方案1】:我注意到您将其标记为 ios 问题,因此请使用 Apple 在 UIView 中内置的方法:
(CGPoint)convertPoint:(CGPoint)point fromView:(UIView *)view
【讨论】:
【参考方案2】:找到您将使用的中点,因此对于 100x100 的屏幕,这将是 (50,50)。然后取你需要转换的点,从点X值中减去中点X值,再从中点Y值中减去点Y值。请注意,您没有对两个值执行相同的操作。
因此,如果该点为 (30,25),则新点将为 (-20,25),因为 30 - 50 = -20 和 50 - 25 = 25。
【讨论】:
以上是关于将点坐标转换为新的坐标系的主要内容,如果未能解决你的问题,请参考以下文章