Espansione avanzata
La figura seguente mostra due modi in cui un oggetto può essere espanso.
Nell'esempio A, l'esempio di espansione semplice, l'oggetto viene espanso intorno al punto centrale. Nell'esempio B, l'oggetto viene espanso intorno al punto centrale della manipolazione. Per abilitare questa operazione, è necessario convertire l'oggetto durante l'espansione. La quantità che convertirai l'oggetto corrisponde alla distanza dal centro dell'oggetto al punto centrale del movimento. Intuitivamente, è come se si espande l'oggetto dal punto centrale del movimento di espansione e quindi spostandolo in modo che sia ancora nello stesso centro della posizione iniziale. Il codice seguente mostra un modo in cui questo concetto può essere applicato per abilitare l'espansione intorno a un punto centrale.
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];
}
Argomenti correlati