Compartir a través de


Expansión avanzada

En la ilustración siguiente se muestran dos maneras de expandir un objeto.

Ilustración que muestra una expansión simple alrededor del punto central de un objeto y expansión avanzada alrededor del punto central de la manipulación

En el ejemplo A, el ejemplo de expansión simple, el objeto se expande alrededor de su punto central. En el ejemplo B, el objeto se expande alrededor del punto central de la manipulación. Para habilitarlo, debe traducir el objeto mientras se expande. La cantidad que traducirá el objeto es la misma que la distancia desde el centro del objeto hasta el punto central del gesto. Intuitivamente, es como si expanda el objeto desde el punto central del gesto de expansión y, a continuación, lo mueva para que todavía esté en el mismo centro que su posición inicial. El código siguiente muestra una manera de aplicar este concepto para habilitar la expansión alrededor de un punto central.

    if(m_fFactor != 1.0f)
    {
        // We represent our vectors as an array.
        // x: vx[0], y: vx[1]

        FLOAT v1[2];
        v1[0] = this->get_CenterX() - fOffset[0];
        v1[1] = this->get_CenterY() - fOffset[1];

        FLOAT v2[2];
        v2[0] = v1[0] * m_fFactor;
        v2[1] = v1[1] * m_fFactor;
        
        m_fdX += v2[0] - v1[0];
        m_fdY += v2[1] - v1[1];
    }
   

Manipulaciones