Partager via


Extension avancée

L’illustration suivante montre deux façons d’étendre un objet.

illustration montrant une expansion simple autour du point central d’un objet et une expansion avancée autour du point central de la manipulation

Dans l’exemple A, l’exemple d’expansion simple, l’objet est développé autour de son point central. Dans l’exemple B, l’objet est développé autour du point central de la manipulation. Pour l’activer, vous devez traduire l’objet pendant son développement. La quantité que vous allez traduire l’objet est la même que la distance entre le centre de l’objet et le point central du mouvement. Intuitivement, c’est comme si vous développez l’objet à partir du point central de votre mouvement d’expansion, puis déplacez-le afin qu’il soit toujours au même centre que sa position initiale. Le code suivant montre une façon dont ce concept peut être appliqué pour activer l’expansion autour d’un point 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];
    }
   

manipulations