Freigeben über


Erweiterte Erweiterung

Die folgende Abbildung zeigt zwei Möglichkeiten, ein Objekt zu erweitern.

Abbildung, die eine einfache Erweiterung um den Mittelpunkt eines Objekts und eine erweiterte Erweiterung um den Mittelpunkt der Manipulation zeigt

In Beispiel A, dem einfachen Erweiterungsbeispiel, wird das Objekt um seinen Mittelpunkt erweitert. In Beispiel B wird das Objekt um den Mittelpunkt der Bearbeitung erweitert. Um dies zu aktivieren, müssen Sie das Objekt übersetzen, während es erweitert wird. Der Betrag, den Sie für das Objekt übersetzen, entspricht dem Abstand vom Zentrum des Objekts zum Mittelpunkt der Geste. Intuitiv ist es so, als ob Sie das Objekt vom Mittelpunkt Ihrer Erweiterungsgeste aus erweitern und es dann so bewegen, dass es sich immer noch in der gleichen Mitte wie seine Anfangsposition befindet. Der folgende Code zeigt eine Möglichkeit, wie dieses Konzept angewendet werden kann, um die Erweiterung um einen Mittelpunkt zu ermöglichen.

    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];
    }
   

Manipulationen