获取重叠矩形内点相对于第二个矩形的坐标
坐标转换:获取相交点在第二个矩形内的相对索引
问题背景
我有两个用二维数组存储颜色的矩形,数组索引与坐标一一对应(例:[0][0]对应画布坐标(0,0))。已知两个矩形的宽度、高度,以及它们在画布上的原点坐标。目前已实现相交区域的点判断逻辑,且正在遍历第一个矩形(画布左上角固定为(0,0)),手里有当前点相对于第一个矩形原点的坐标,需要计算该点相对于第二个矩形原点的坐标(第二个矩形始终位于第一个矩形上方),以此获取第二个矩形在该点的颜色值。
解决方案:坐标转换公式
先明确变量定义:
(x1, y1):当前点相对于第一个矩形的坐标(即遍历第一个矩形时的数组索引)(rect2_x, rect2_y):第二个矩形在画布上的原点坐标(左上角位置)
因为第一个矩形的画布原点是(0,0),所以当前点的画布绝对坐标就是(x1, y1)。
那么该点相对于第二个矩形的坐标(x2, y2)计算公式为:
x2 = x1 - rect2_x y2 = y1 - rect2_y
示例验证
假设第二个矩形的画布原点是(3, 2),当前点在第一个矩形里的坐标是(5,4):
- 绝对坐标:(5,4)
- 相对第二个矩形的坐标:5-3=2,4-2=2 →
(2,2),对应第二个矩形数组的[2][2]位置,直接取该索引的颜色值即可。
内容的提问来源于stack exchange,提问作者Bradley Lund
相关产品推荐
相关产品推荐

