在我的处理应用程序中,我想翻译一个形状并进行缩放。 坐标,比例和平移值保存在对象中。 在每个循环中,我使用相同的每个对象的translate-value和更大的scale-value。
问题是'尺度'在某种程度上累积了'翻译' - 尺度不会发生在物体的中间......
如何设置对象以便在其中心进行缩放?
for (int i = 1; i < formen.size(); i++) {
Form f = formen.get(i);
pushMatrix();
f.sx = f.sx * 2;
f.sy = f.sy * 2;
scale(f.sx, f.sy);
translate(f.tx, f.ty);
noStroke();
createShape();
beginShape();
vertex(f.ax, f.ay);
bezierVertex(f.ax + f.kabx, f.ay, f.bx, f.by - f.kaby, f.bx, f.by);
bezierVertex(f.bx, f.by + f.kbcy, f.cx + f.kbcx, f.cy, f.cx, f.cy);
bezierVertex(f.cx - f.kcdx, f.cy, f.dx, f.dy + f.kcdy, f.dx, f.dy);
bezierVertex(f.dx, f.dy - f.kday, f.ax - f.kdax, f.ay, f.ax, f.ay);
endShape();
popMatrix();
delay(5);
}