我看到了一個使用 getScaleInstance(x,x) 來宣告比例的代碼。另一方面,我也看到有人用scale來宣告scale。有什么區別?
例如:
AffineTransform test= new AffineTransform();
test.scale(1.0,1.0) //1
test=AffineTransform.getScaleInstance(1.0,1.0) //2
1 和 2 有什么區別?
uj5u.com熱心網友回復:
我已經為你檢查了檔案,發現:
scale()- 是矩陣(內部AffineTransform)的變換,它等于以下代碼:
AffineTransform test = new AffineTransform();
AffineTransform scale = AffineTransform.getScaleInstance(1.0, 1.0);
test.concatenate(scale);
從上面的代碼可以看出,首先,我們通過呼叫創建一個比例AffineTransform.getScaleInstance,其次,我們將此比例應用于“測驗”。
所以,scale()是一種更簡潔的方法來進行縮放。但是,您應該注意到它scale()接受兩個double描述比例因子的引數。因此,如果您以某種方式將比例計算為 a 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));
第一種方法無疑比第二種方法更簡潔。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/388299.html
下一篇:如何清除JFrame?
