Compartilhar via


Expansão avançada

A ilustração a seguir mostra duas maneiras pelas quais um objeto pode ser expandido.

ilustração mostrando a expansão simples em torno do ponto central de um objeto e a expansão avançada em torno do ponto central da manipulação

No exemplo A, o exemplo de expansão simples, o objeto é expandido em torno de seu ponto central. No exemplo B, o objeto é expandido em torno do ponto central da manipulação. Para habilitar isso, você deve traduzir o objeto enquanto ele está sendo expandido. O valor que você traduzirá o objeto é o mesmo que a distância do centro do objeto até o ponto central do gesto. Intuitivamente, é como se você estivesse expandindo o objeto do ponto central do gesto de expansão e movendo-o para que ele ainda esteja no mesmo centro da posição inicial. O código a seguir mostra uma maneira de aplicar esse conceito para habilitar a expansão em torno de um ponto 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];
    }
   

Manipulações