我有矩形,其具有约topx,TOPY,宽度和高度的信息。

欲基于除左上方之外的原点是按比例的当前矩形。有没有已经存在的算法中要做到这一点?

目前我Eclipse的GEF和SWT工作。在全球环境基金,所有的矩形操作都假定左上角是在图纸开始,他们规模/从左上角调整。但我想要做的规模/从心的大小。

例如:我的矩形具有像{100,100,50,50}信息。如果我的1.5缩放在两个X和Y从左上方我会得到所得矩形为{100,100,100,100}(初两个是x,y和其余的是宽度,高度)。

由于 Ĵ

有帮助吗?

解决方案

我的规模的定义是与你的不同,因为如果我1.5从顶部标尺左我的结果矩形将是{100,100,75,75} - >原点保持不变和各边的尺寸乘以由比例。

使用这些定义,如果(X,Y)是该矩形的左上角坐标,从中心缩放和保持原点常数: {X,Y,宽度,高度} - > {X +宽度*(1 - 标度)/ 2,Y +高度*(1 - 标度)/ 2,宽度*标度,高度*刻度}

我建议规模> 0虽然结果被定义为零倍负的值。


样例:量表{100,100,50,50} 1.5从中心

x: 100 -> 100 + 50 * (1 - 1.5)/2 = 100 + 50 * (-0.5)/2 = 100 - 50/4 = 87.5
y: 100 -> 100 + 50 * (1 - 1.5)/2 = 100 + 50 * (-0.5)/2 = 100 - 50/4 = 87.5
width:  50 -> 50 * 1.5 = 75
height: 50 -> 50 * 1.5 = 75

结果:{100,100,50,50} - > {87.5,87.5,75%,75}

其他提示

如果该矩形由下式定义

topx, topy, widht, height

的缩放因子是

factor

原点的坐标

ox, oy

可以通过以下公式给定的原点缩放矩形

topx   = ox + ( topx - ox ) * factor;
topy   = oy + ( topy - oy ) * factor;
width  = width  * factor;
height = height * factor;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top