Définissez la classe de parallélogramme, héritez de la classe quadrilatère et ajoutez la fonction pour déterminer s'il s'agit d'un parallélogramme

Continuer vers l'article précédent (définir la classe quadrilatérale)

Le code spécifique est le suivant:

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

En jugeant s'il s'agit d'un parallélogramme, je pensais juste que les deux côtés opposés sont égaux et que le code est le suivant:

//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;

Mais cela nécessite l'ordre des sommets d'entrée. Par exemple, dans mon code, le premier et le quatrième sommet entrés par l'utilisateur doivent indirectement être diagonaux, donc lorsque l'utilisateur entre les quatre sommets qui peuvent former un quadrilatère , Mais peut être jugé différemment en raison d'un ordre d'entrée différent.
Plus tard, il a été considéré: deux ensembles de quadrilatères avec des côtés opposés parallèles (c'est-à-dire que les pentes des côtés sont égales) sont des parallélogrammes. Dans un parallélogramme, les diagonales peuvent être égales aux côtés, mais les pentes ne sont certainement pas égales. Bien que les trois cas soient considérés comme vrais et les autres faux, je pense que c'est plus facile que de considérer les côtés opposés comme égaux.

Je suppose que tu aimes

Origine blog.csdn.net/weixin_43362905/article/details/109559364
conseillé
Classement