Expansão avançada
A ilustração a seguir mostra duas maneiras pelas quais um objeto pode ser expandido.
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];
}
Tópicos relacionados