Expansion 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 ce faire, vous devez traduire l’objet pendant son développement. La valeur de conversion de l’objet est identique à la distance entre le centre de l’objet et le point central du mouvement. Intuitivement, c’est comme si vous développiez l’objet à partir du point central de votre mouvement d’expansion, puis que vous le déplaciez de manière à ce qu’il se trouve toujours au même centre que sa position initiale. Le code suivant illustre une façon dont ce concept peut être appliqué pour permettre 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