Defina la clase de paralelogramo, herede la clase de cuadrilátero y agregue la función para determinar si es un paralelogramo

Continuar con el artículo anterior (definir clase de cuadrilátero)

El código específico es el siguiente:

class PXSBX : SBX                                       //平行四边形类,继承四边形类                   
    {
    
    
        public bool IsPXSBX()                               //判断是否为平行四边形
        {
    
    
            if (((Py2 - Py1) * (Px4 - Px3) == (Py4 - Py3) * (Px2 - Px1)) && ((Py4 - Py1) * (Px2 - Px3) == (Py2 - Py3) * (Px4 - Px1)))
                return true;
            else if (((Py3 - Py1) * (Px4 - Px2) == (Py4 - Py2) * (Px3 - Px1)) && ((Py4 - Py1) * (Px2 - Px3) == (Py2 - Py3) * (Px4 - Px1)))
                return true;
            else if (((Py2 - Py1) * (Px4 - Px3) == (Py4 - Py3) * (Px2 - Px1)) && ((Py3 - Py1) * (Px2 - Px4) == (Py2 - Py4) * (Px3 - Px1)))
                return true;                                //两组对边分别平行(即边的斜率相等)的四边形则为平行四边形
            else
                return false;                                          
        }
    }

Al juzgar si es un paralelogramo, solo pensé que los dos lados opuestos son iguales, y el código es el siguiente:

//double I1, I2, I3, I4;                          //四条边的长度
            //I1 = Math.Sqrt(Math.Abs((Px1 - Px2) * (Px1 - Px2) + (Py1 - Py2) * (Py1 - Py2)));
            //I2 = Math.Sqrt(Math.Abs((Px1 - Px3) * (Px1 - Px3) + (Py1 - Py3) * (Py1 - Py3)));
            //I3 = Math.Sqrt(Math.Abs((Px4 - Px2) * (Px4 - Px2) + (Py4 - Py2) * (Py4 - Py2)));
            //I4 = Math.Sqrt(Math.Abs((Px4 - Px3) * (Px4 - Px3) + (Py4 - Py3) * (Py4 - Py3)));
            //if ((I1 == I4) && (I2 == I3))
            //    return true;                                //对边均相等,则为平行四边形
            //else 
            //    return false;

Pero esto requiere el orden de los vértices de entrada. Por ejemplo, en mi código, el primer vértice y el cuarto vértice ingresados ​​por el usuario deben ser indirectamente diagonales, por lo que cuando el usuario ingresa los cuatro vértices que pueden formar un cuadrilátero , Pero se puede juzgar de manera diferente debido al orden de entrada diferente.
Posteriormente, se consideró: los dos conjuntos de cuadriláteros con lados opuestos paralelos (es decir, los lados tienen la misma pendiente) son paralelogramos. En un paralelogramo, las diagonales pueden ser iguales a los lados, pero las pendientes definitivamente no son iguales, aunque los tres casos se consideran verdaderos y los otros falsos, creo que es más fácil que considerar iguales los lados opuestos.

Supongo que te gusta

Origin blog.csdn.net/weixin_43362905/article/details/109559364
Recomendado
Clasificación