Codenameone中图形类的变换方法

时间:2016-01-09 20:47:26

标签: java codenameone

我无法在CodenameOne中找到图形类的Transform Method的替代方法。我尝试过使用Graphics setTransform Method但无法获得所需的功能。你能帮忙吗?谢谢

AffineTransform saveAT = g2d.getTransform();
g2d.transform(getmyTranslation());      
g2d.transform(getmyRotation());         
g2d.fillRect((int)(0-getSize()/2), (int)(0-getSize()/2), getSize(), getSize());         
for (Object f : obj)
{
   f.draw(g2d);
}       
g2d.setTransform(saveAT);

我们在CodenameOne中没有g2d.transform

1 个答案:

答案 0 :(得分:1)

仿射变换直接构建在图形中,因此您根本不需要前几行:

AffineTransform saveAT = g2d.getTransform();
g2d.transform(getmyTranslation());      
g2d.transform(getmyRotation());         

你可以这样做:

g2d.rotate(degrees, pivotX, pivotY);

填充矩形应该几乎相同:

g2d.fillRect((int)(0-getSize()/2), (int)(0-getSize()/2), getSize(), getSize());         

Draw也适用于Shape个对象:

for (Object f : feet)
{
   f.draw(g2d);
}       

不需要像这样恢复仿射:

g2d.setTransform(saveAT);

请改为:

g2d.resetAffine();