处理:规模和变换

时间:2014-03-06 09:59:35

标签: scale processing translate

在我的处理应用程序中,我想翻译一个形状并进行缩放。 坐标,比例和平移值保存在对象中。 在每个循环中,我使用相同的每个对象的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);
    }

0 个答案:

没有答案