计算缩放因子以将一个矩形的点1(x,y坐标)转换为另一个矩形的点1(x,y)。

3
将一个矩形的x,y坐标比例缩放到另一个矩形的坐标非常简单,可以在以下链接中更好地解释:http://www.icoachmath.com/math_dictionary/scale_factor.html。如果我们有两个矩形,一个最大宽度为2000,最大高度为1000,另一个大小为最大宽度:4000,最大高度=2000,则将Rect1的坐标转换为Rect2的比例因子应为:对于Rect2中的x:(Rect1中的x)*(Rect2的最大宽度/ Rect1的最大宽度),对于Rect2中的y:(Rect1中的y)*(Rect2的最大高度/ Rect1的最大高度)。但是当一个矩形的中心点是原点(X,Y - 0,0)时,该矩形会向左和右偏移,x会变为负值,在y轴上同理,如果向上偏移,y将变为正值,如果向下偏移,则y将为负值,因此该矩形的范围为(-maxwidth至+maxwidth,-maxheight至+maxheight)。现在我们有第二个矩形,它的中心位于最左侧和最顶部的位置(最左侧和最顶部-0,0),因为我们沿着x轴向右移动,在y轴上向下移动,因此x和y始终为正值。因此,如何计算将具有中心在矩形的中心(MaxWidth / 2,MaxHeight / 2)的坐标转换为原点位于最左侧和最上方位置的矩形的比例因子?
1个回答

5

假设第一个矩形的两个(对角线相对)顶点坐标为:

(X0_Old, Y0_Old) 和 (X1_Old, Y1_Old)

第二个矩形的顶点坐标为:

(X0_New, Y0_New) 和 (X1_New, Y1_New)

那么坐标转换将如下:

for every point:
  X_New = X0_New + (X_Old - X0_Old) * X_Coeff
where 
  X_Coeff = (X1_New - X0_New) / (X1_Old - X0_Old)

(对于Y坐标同样适用)

非常感谢您进行这个非常有用的转换! - Richard Foss

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接