getscaleinstance 和 scale 之间的区别? (摇摆java)
Difference between getscaleinstance and scale? (swing java)
我看到一段代码使用 getScaleInstance(x,x) 来声明比例。另一方面,我也看到有人用scale来声明秤。有什么区别?
例如:
AffineTransform test= new AffineTransform();
test.scale(1.0,1.0) //1
test=AffineTransform.getScaleInstance(1.0,1.0) //2
1和2有什么区别?
我已经为您检查了文档并发现:
scale()
- 是矩阵的变换(在 AffineTransform
内),等于以下代码:
AffineTransform test = new AffineTransform();
AffineTransform scale = AffineTransform.getScaleInstance(1.0, 1.0);
test.concatenate(scale);
正如您从上面的代码中看到的,首先,我们通过调用 AffineTransform.getScaleInstance
创建一个量表,其次,我们将这个量表应用于“测试”。
因此,scale()
是一种更简洁的缩放方式。但是,您应该注意到 scale()
接受两个描述比例因子的 double
参数。因此,如果您以某种方式将比例计算为 AffineTransform
,您应该使用 concatenate()
而不是 scale()
。
总结一下,这些代码做同样的事情,它们是相等的:
AffineTransform test = new AffineTransform();
test.scale(1.0, 1.0);
和
AffineTransform test = new AffineTransform();
test.concatenate(AffineTransform.getScaleInstance(1.0, 1.0));
第一种方法无疑比第二种方法更简洁。
我看到一段代码使用 getScaleInstance(x,x) 来声明比例。另一方面,我也看到有人用scale来声明秤。有什么区别?
例如:
AffineTransform test= new AffineTransform();
test.scale(1.0,1.0) //1
test=AffineTransform.getScaleInstance(1.0,1.0) //2
1和2有什么区别?
我已经为您检查了文档并发现:
scale()
- 是矩阵的变换(在 AffineTransform
内),等于以下代码:
AffineTransform test = new AffineTransform();
AffineTransform scale = AffineTransform.getScaleInstance(1.0, 1.0);
test.concatenate(scale);
正如您从上面的代码中看到的,首先,我们通过调用 AffineTransform.getScaleInstance
创建一个量表,其次,我们将这个量表应用于“测试”。
因此,scale()
是一种更简洁的缩放方式。但是,您应该注意到 scale()
接受两个描述比例因子的 double
参数。因此,如果您以某种方式将比例计算为 AffineTransform
,您应该使用 concatenate()
而不是 scale()
。
总结一下,这些代码做同样的事情,它们是相等的:
AffineTransform test = new AffineTransform();
test.scale(1.0, 1.0);
和
AffineTransform test = new AffineTransform();
test.concatenate(AffineTransform.getScaleInstance(1.0, 1.0));
第一种方法无疑比第二种方法更简洁。