Exemplo n.º 1
0
        /// <summary>
        /// Verifie si deux plans sont identiques
        /// On peut également vérifier ou non les directions des normales
        /// </summary>
        /// <param name="p"></param>
        /// <param name="prendreEnCompteSensNormale"></param>
        /// <returns></returns>
        public Boolean SontIdentiques(gPlan p, Double arrondi, Boolean prendreEnCompteSensNormale = true)
        {
            var result  = false;
            var normale = p.Normale;
            var origine = p.Origine;

            normale.Normaliser();

            // Si les normales sont colinéaires
            if (normale.EstColineaire(Normale, arrondi, prendreEnCompteSensNormale))
            {
                if (Origine.Comparer(origine, arrondi))
                {
                    result = true;
                }

                // On test si l'origine est sur le plan en calculant le
                // produit vectoriel de la norme avec le vecteur(Origine, origine)
                // Si la valeur est égale à 1, ces deux vecteurs sont perpendiculaire
                var v2 = new gVecteur(Origine, origine);
                v2.Normaliser();

                var val = Math.Abs(Normale.Vectoriel(v2).Norme - 1);

                if (val < arrondi)
                {
                    result = true;
                }
            }

            return(result);
        }
Exemplo n.º 2
0
        public Boolean Compare(gSegment s, Double arrondi)
        {
            if ((Start.Comparer(s.Start, arrondi) && End.Comparer(s.End, arrondi)) || (Start.Comparer(s.End, arrondi) && End.Comparer(s.Start, arrondi)))
            {
                return(true);
            }

            return(false);
        }