Le point k appartient. Convertir un dessin complexe

Les signes d’appartenance sont bien connus dès le cours de planimétrie. Notre tâche est de les considérer par rapport à des projections d'objets géométriques.

Un point appartient à un plan s'il appartient à une droite située dans ce plan.

L'appartenance à un plan droit est déterminée par l'un des deux critères suivants :

a) une droite passe par deux points situés dans ce plan ;

b) une droite passe par un point et est parallèle aux droites situées dans ce plan.

En utilisant ces propriétés, résolvons le problème à titre d'exemple. Soit le plan défini par un triangle abc. Il est nécessaire de construire la projection manquante D 1 point D appartenant à cet avion. La séquence des constructions est la suivante (Fig. 2.5).

Riz. 2.5.

Construire des projections d'un point appartenant à un plan DÀ travers le point 2 nous effectuons une projection en ligne droite d abc, allongé dans l'avion , coupant l'un des côtés du triangle et le point UN , coupant l'un des côtés du triangle et le point 2 D 2. Alors le point 1 2 appartient aux droites 2 et 2 C DANS 2 et 1 C 2. On peut donc obtenir sa projection horizontale 1 1 sur , coupant l'un des côtés du triangle et le point 1 via la ligne de communication. Points de connexion 1 1 et 2 nous effectuons une projection en ligne droite 1, on obtient une projection horizontale D 1. D 2 .

Il est clair que le point

1 lui appartient et se trouve sur la ligne de connexion de projection avec le point

Les problèmes de détermination de l'appartenance d'un point ou d'un plan droit sont résolus assez simplement. Sur la fig. La figure 2.6 montre les progrès réalisés dans la résolution de ces problèmes. Pour plus de clarté dans la présentation du problème, nous définissons le plan par un triangle. Riz. 2.6. Problèmes pour déterminer si un point appartient à un plan droit. Afin de déterminer si un point appartient abc E avion, tracez une ligne droite passant par sa projection frontale E 2 abc UN avion 2. En supposant que la droite a appartient au plan avion, construisons sa projection horizontale Riz. 2.6. Problèmes pour déterminer si un point appartient à un plan droit. 1 aux points d'intersection 1 et 2. Comme on le voit (Fig. 2.6, a), tout droit Riz. 2.6. Problèmes pour déterminer si un point appartient à un plan droit. abc.

1 ne passe pas par le point 1. Par conséquent, le point Dans le problème de l'appartenance à une ligne abc V 1. Par conséquent, le point plans triangulaires 1. Par conséquent, le point(Fig. 2.6, b), il suffit d'utiliser l'une des projections en ligne droite 1. Par conséquent, le point abc 2 en construire un autre 1. Par conséquent, le point 1* considérant que 1. Par conséquent, le point. Comme nous le voyons, 1. Par conséquent, le point abc.

1* et

1 ne correspond pas. Par conséquent, directement 2.4. Lignes de niveau dans un plan La définition des lignes de niveau a été donnée précédemment. Les lignes de niveau appartenant à un plan donné sont appelées

Considérons la construction de lignes de niveau dans le plan défini par le triangle (Fig. 2.7).

Riz. 2.7. Construire les lignes principales d'un plan défini par un triangle

Plan horizontal abc on commence par dessiner sa projection frontale h 2, dont on sait qu'il est parallèle à l'axe OH. Puisque cette ligne horizontale appartient à ce plan, elle passe par deux points du plan abc, à savoir les points , coupant l'un des côtés du triangle et le point et 1. Avoir leurs projections frontales , coupant l'un des côtés du triangle et le point 2 et 1 2 , le long de la ligne de communication on obtient des projections horizontales ( , coupant l'un des côtés du triangle et le point 1 existe déjà) 1 1 . Relier les points , coupant l'un des côtés du triangle et le point 1 et 1 1, nous avons une projection horizontale h 1 plan horizontal abc. Projection de profil h 3 plans horizontaux abc sera parallèle à l'axe OH par définition.

Plan avant abc est construit de manière similaire (Fig. 2.7) avec la seule différence que son dessin commence par une projection horizontale f 1, puisqu'on sait qu'il est parallèle à l'axe OX. Projection de profil f 3 fronts doivent être parallèles à l'axe OZ et passer par les saillies AVEC 3, 2 3 des mêmes points AVEC et 2.

Ligne de profil de l'avion abc a une horizontale r 1 et avant r 2 projections parallèles aux axes OY Et once, et la projection de profil r 3 peut être obtenu de face en utilisant les points d'intersection C et 3 s abc.

Lors de la construction des lignes principales d'un plan, vous ne devez vous rappeler qu'une seule règle : pour résoudre le problème, vous devez toujours obtenir deux points d'intersection avec un plan donné. La construction de lignes principales situées dans un plan défini d'une manière différente n'est pas plus compliquée que celle évoquée ci-dessus. Sur la fig. La figure 2.8 montre la construction des plans horizontal et frontal définis par deux lignes sécantes avion Et 1. Par conséquent, le point.

Riz. 2.8. Construction des lignes principales d'un plan défini par des droites sécantes.

Un point appartient à un plan s’il appartient à une droite quelconque de ce plan.

Une droite appartient à un plan si deux de ses points appartiennent au plan.

Ces deux phrases assez évidentes sont souvent appelées les conditions pour qu’un point appartienne à un plan droit.

Sur la fig. 3.6 avion position générale donné triangle ABC. Les points A, B, C appartiennent à ce plan, puisqu'ils sont les sommets d'un triangle issu de ce plan. Les droites (AB), (BC), (AC) appartiennent au plan, puisque deux de leurs points appartiennent chacun au plan. Le point N appartient à (AC), D appartient à (AB), E appartient à (CD) et donc les points N et E appartiennent au plan (DABC), alors la droite (NE) appartient au plan (DABC ).

Si une projection d'un point L est donnée, par exemple L 2, et que l'on sait que le point L appartient au plan (DABC), alors pour trouver la deuxième projection L 1 on trouve successivement (A 2 L 2), K 2, (A 1 K 1), L 1.

Si la condition pour qu’un point appartienne au plan est violée, alors le point n’appartient pas au plan. Sur la fig. 3.6, le point R n'appartient pas au plan (DABC), puisque R 2 appartient à (F 2 K 2), et R 1 n'appartient pas à (A 1 K 1).

Sur la fig. 3,7 donné dessin complexe plan de projection horizontal (DCDE). Les points K et P appartiennent à ce plan, puisque P 1 et K 1 appartiennent à la droite (D 1 C 1), qui est la projection horizontale du plan (DCDE). Le point N n'appartient pas au plan, puisque N 1 n'appartient pas à (D 1 C 1).

Tous les points du plan (DCDE) sont projetés sur P 1 en une droite (D 1 C 1). Cela découle du fait que l'avion (DCDE) ^ П 1. Vous pouvez également le vérifier si vous faites les mêmes constructions pour le point P (ou tout autre point) que pour le point L (Fig. 3.6). Le point P 1 tombera sur la ligne droite (D 1 C 1). Ainsi, afin de déterminer si un point appartient au plan de projection horizontale, la projection frontale (DC 2 D 2 E 2) n'est pas nécessaire. Par conséquent, à l’avenir, les plans en projection seront spécifiés par une seule projection (ligne droite). Sur la fig. La figure 3.7 montre le plan en projection frontale S, défini par la projection frontale S 2, ainsi que les points A Î S et B Ï S.

La position relative d'un point et d'un plan dépend de l'appartenance ou non du point au plan.

Lors de la résolution de nombreux problèmes, il est nécessaire de construire des lignes de niveau appartenant à des plans généraux et particuliers. Sur la fig. La figure 3.8 montre l'horizontale h et la frontale f, appartenant au plan de position générale (DABC). La projection frontale h 2 est parallèle à l'axe x, donc la droite h est horizontale. Les points 1 et 2 de la droite h appartiennent au plan, donc la droite h appartient au plan. Ainsi, la droite h est l'horizontale du plan (DABC). Habituellement, l'ordre de construction est le suivant : h 2 ; 1 2, 2 2 ; 1 1, 2 1; (1 1 2 1) = h 1 . La frontale f passe par le point A. Ordre de construction : f 1 // x, A 1 О f 1 ; 3 1, 3 2; (UNE 2 3 2) = f 2 .



Sur la fig. La figure 3.9 montre les projections horizontales et frontales du plan S se projetant frontalement et du plan G se projetant horizontalement. Dans le plan S, l'horizontale est une ligne se projetant frontalement et passe par le point A (essayez d'imaginer l'horizontale comme la ligne d'intersection de S et le plan passant par le point A parallèle à P 1). Le frontal passe par le point C. Dans le plan G, l'horizontale et le frontal passent par un point D. Le frontal est une ligne se projetant horizontalement.

Des constructions discutées ci-dessus, il s'ensuit qu'une ligne de niveau dans un plan peut être tracée par n'importe quel point de ce plan.

La coïncidence des plans peut être interprétée comme l'appartenance d'un plan à un autre. Si trois points d’un plan appartiennent à un autre plan, alors ces plans coïncident. Les trois points mentionnés ne doivent pas se trouver sur la même ligne droite. Sur la fig. 3.10 le plan (DDNE) coïncide avec le plan S(DABC), puisque les points D, N, E appartiennent au plan S(DABC).

A noter que le plan S défini par DABC peut désormais être défini par DDNE. N'importe quel plan peut être défini par des lignes de niveau. Pour ce faire, il faut tracer dans le plan une ligne horizontale et une ligne frontale passant par un point du plan S(DABC) (par exemple passant par le point A), qui définira le plan S (les constructions ne sont pas représentées dans 3.10). La séquence de construction de la ligne horizontale est : h 2 // x (A 2 Î h 2) ; K 2 = h 2 Ç B 2 C 2 ; K 1 О B 1 C 1 (K 2 K 1 ^ x); UNE 1 K 1 = h 1 . La séquence de construction du frontal : f 1 // x (A 1 О f 1) ; L 1 = f 1 Ç B 1 C 1 ; L 2 О B 2 C 2 (L 1 L 2 ^ x); UNE 2 L 2 = F 2 . On peut écrire S(DABC) = S(h, f).

CONVERSION D'UN DESSIN COMPLEXE

Au courant géométrie descriptive la transformation d'un dessin complexe d'une figure est généralement comprise comme son changement provoqué par le déplacement de la figure dans l'espace, ou l'introduction de nouveaux plans de projection, ou l'utilisation d'autres types de projection. Application diverses méthodes(méthodes) de transformation d'un dessin complexe simplifie la solution de nombreux problèmes.

4.1. Méthode de remplacement du plan de projection

La méthode de remplacement des plans de projection consiste à introduire un nouveau plan à la place de l'un des plans de projection, perpendiculaire à l'autre plan de projection. Sur la fig. La figure 4.1 montre un diagramme spatial permettant d'obtenir un dessin complet du point A dans le système (P 1 P 2). Points A 1 et A 2 – horizontaux et projection frontale points A, AA 1 A x A 2 – un rectangle dont le plan est perpendiculaire à l'axe des x (Fig. 2.3).

Nouvel avion P 4 est perpendiculaire à P 1. En projetant le point A sur P 4, on obtient une nouvelle projection A 4, la figure AA 1 A 14 A 4 est un rectangle dont le plan est perpendiculaire au nouvel axe x 14 = P 4 Ç P 1. Pour obtenir un dessin complet, nous considérerons des figures situées dans des plans de projection. En tournant autour de l'axe x 14, P 4 est compatible avec P 1, puis en tournant autour de l'axe x, P 1 (et P 4) est compatible avec P 2 (sur la Fig. 4.1, les sens de déplacement des plans P 4 et P1 sont représentés par des traits pointillés avec des flèches). Le dessin résultant est présenté sur la Fig. 4.2. Les angles droits sur la Fig. 4.1, 4.2 sont marqués d'un arc avec un point, segments égaux marqué de deux traits ( côtés opposés rectangles sur la Fig. 4.1). Du dessin complexe du point A dans le système (P 1 P 2) nous sommes passés au dessin complexe du point A dans le système (P 1 P 4), avons remplacé le plan P 2 par le plan P 4, remplacé A 2 par Un 4.

A partir de ces constructions, nous formulons une règle de remplacement des plans de projection (la règle d'obtention d'une nouvelle projection). A travers une projection irremplaçable nous réalisons nouvelle ligne connexion de projection perpendiculaire au nouvel axe, puis à partir du nouvel axe le long de la ligne de connexion de projection nous déposons un segment dont la longueur est égale à la distance de la projection remplacée à l'ancien axe, le point résultant est la nouvelle projection. Nous prendrons arbitrairement la direction du nouvel axe. Nous n'indiquerons pas la nouvelle origine des coordonnées.

Sur la fig. La figure 4.3 montre la transition d'un dessin complexe dans le système (P 1 P 2) à un dessin complexe dans le système (P 2 P 4), puis une autre transition vers un dessin complexe dans le système (P 4 P 5). Au lieu du plan P 1, le plan P 4, perpendiculaire à P 2, a été introduit, puis au lieu de P 2, le plan P 5, perpendiculaire à P 4, a été introduit. En utilisant la règle de remplacement des plans de projection, vous pouvez effectuer n'importe quel nombre de remplacements de plans de projection.

Tâche.Étant donné trois points A, B et C qui ne coïncident pas deux à deux et ne se trouvent pas sur la même droite, précisés par leurs coordonnées. Déterminez si le point D(x_d,y_d) appartient au triangle ABC.
Notons immédiatement que le problème peut être facilement généralisé à tout polygone convexe.

Essais

Les cas suivants doivent être reflétés dans les tests :

  1. Point strictement à l'extérieur du triangle
  2. Le point est strictement à l'intérieur du triangle
  3. Le point coïncide avec l'un des sommets du triangle
  4. Le point se trouve sur l'un des côtés du triangle
  5. Le point se situe sur le prolongement d'un des côtés du triangle
  6. L'un des côtés du triangle est parallèle à l'un des axes de coordonnées
  7. Deux côtés du triangle sont parallèles aux axes de coordonnées
xa ouais xb yb xc yc xd yd Appartient ?
-1 -1 1 -1 0 1 2 2 Non
-2 -2 1 -1 0 1 0 0 Oui
-1 -1 1 -1 0 1 0 1 Oui
-1 -1 1 -1 0 1 0.5 0 Oui
-1 -1 1 -1 0 1 1 3 Non
-1 -1 1 -1 0 1 0 0 Oui
0 0 2 0 0 2 1 1 Oui
0 0 2 0 0 2 5 5 Non

Mauvaise décision

DANS manuels scolaires Il est souvent recommandé de résoudre de tels problèmes en vérifiant les conditions S_(ABC)=S_(ABD)+S_(BCD)+S_(CAD). Dans la mise en œuvre informatique, cela conduit à la nécessité de comparer deux nombres réels pour l'égalité. Cette opération extrêmement désagréable ne peut être effectuée qu'avec dans une certaine mesure fiabilité. Ceux. vous devrez vérifier si le \left| S_(ABD)+S_(BCD)+S_(CAD)-S_(ABC) \right|< \varepsilon или относительное \left| 1-\frac{S_{ABD}+S_{BCD}+S_{CAD}}{S_{ABC}} \right| < \varepsilon отклонение. Оставим эти вопросы для курса méthodes numériques et des méthodes de calculs approximatifs et je n'emprunterai pas cette voie.

Ce n'est pas une mauvaise décision

Commençons par une observation simple :

Tous les points d'un triangle (et de tout polygone convexe) doivent se trouver du même côté d'une ligne passant par chaque côté.

Écrivons l'équation d'une droite passant, par exemple, par les points A et B. On obtient \left(x-x_A \right) \left(y_B-y_A \right)-\left(y-y_A \right) \left(x_B-x_A \ right) = 0. J'ai écrit l'équation sous une forme telle que je n'ai pas eu à faire de division et à me soucier du zéro au dénominateur.

Maintenant, pour tout point \left(x;y \right) nous pouvons calculer côté gaucheétant donné l’égalité. Pour les points situés sur une ligne droite, nous devrions obtenir zéro. En même temps, la ligne droite divisera le plan en deux demi-plans. Les points situés dans le même demi-plan donneront valeurs positives. Et les points de l’autre demi-plan sont négatifs.
Nous sommes prêts à vérifier la première condition : le point D \left(x_d,y_d \right) appartient-il au même demi-plan que le point C \left(x_c,y_c \right) par rapport à la droite \left(AB \ droite)? Pour ce faire, nous substituons les deux points dans le côté gauche de l'équation de la droite ci-dessus et nous assurons que les valeurs obtenues sont du même signe. Et si l’un des points donne exactement zéro ? Cela signifie que le point se trouve sur une ligne. Selon les conditions du problème, il ne peut s'agir que du point D. Il appartient alors au triangle quel que soit le signe de l'expression calculée pour le point C.

Notez que nous ne prétendons pas que pour n’importe quel point de la droite, nos calculs approximatifs donneront forcément un zéro exact. Ce serait une erreur. Nous affirmons seulement que si les calculs effectués avec la précision dont nous disposons donnaient encore un zéro exact, alors nous forcé compter ce point couché sur cette ligne.

Naturellement, nous devrons écrire des conditions similaires pour les deux côtés restants du triangle (ou pour tous les côtés restants d'un polygone convexe).

Mauvais code

Commençons par déclarer les variables et lire leurs valeurs. Après cela, nous écrirons une condition très lourde, qui vérifie l'adhésion.

Le point appartient-il au triangle ?

#inclure

int principal()

// lit les coordonnées du point A

// lit les coordonnées du point D

// lit les coordonnées du point C

// lit les coordonnées du point D

printf(

(((xd - xa) * (yb - ya) - (yd - ya) * (xb - xa)) * ((xc - xa) * (yb - ya) - (yc - ya) * (xb - xa ) ) >= 0 ) &&

(((xd - xb ) * (yc - yb ) - (yd - yb ) * (xc - xb ) ) * ((xa - xb ) * (yc - yb ) - (ya - yb ) * (xc - xb ) ) >= 0 ) &&

(((xd - xc) * (ya - yc) - (yd - yc) * (xa - xc)) * ((xb - xc) * (ya - yc) - (yb - yc) * (xa - xc ) ) >= 0 ) ?

"oui" : "non" ) ;

renvoie 0 ;

Le code ci-dessus présente des inconvénients importants. Nous avons dû écrire trois fois l’équation d’une droite passant par deux points et substituer les coordonnées dans chacun d’eux deux fois pour vérifier le signe. Cela signifie que nous avons dû écrire une formule six fois avec des substitutions différentes. Avec l’approche que nous avons utilisée, nous sommes confrontés à deux problèmes. Premièrement, la situation est devenue trop complexe pour être facilement comprise. Deuxièmement, et c'est bien pire, un tel code augmente la probabilité de commettre une erreur de \frac ( 1-( \left(1-p \right) )^( 6 ) )( p ) fois. C'est drôle, mais cela signifie que la probabilité qu'un programmeur novice fasse une erreur double et que celle d'un programmeur expérimenté augmente six fois. C'est bien que les programmeurs expérimentés n'écrivent pas de code comme celui-ci.

Pas un mauvais code

Utilisons ce que nous savons déjà créer fonctions natives afin de réduire légèrement la quantité de code et de le rendre plus facile à comprendre.
Écrivons la condition dans le langage de programmation C++ :

Solution utilisant des fonctions

#inclure

// Calcule la position du point D(xd,yd) par rapport à la droite AB

double g (double xa, double ya, double xb, double yb, double xd, double yd)

return (xd - xa ) * (yb - ya ) - (yd - ya ) * (xb - xa ) ;

// Les points C et D se trouvent-ils du même côté de la droite (AB) ?

bool f (double xa , double ya , double xb , double yb , double xc , double yc , double xd , double yd )

return g (xa , ya , xb , yb , xc , yc ) * g (xa , ya , xb , yb , xd , yd ) >= 0 ;

int principal()

double xa, ya, xb, yb, xc, yc, xd, yd;

scanf ("%lf%lf" , &xa , &ya ) ; // lit les coordonnées du point A

scanf ("%lf%lf" , &xb , &yb ) ; // lit les coordonnées du point B

scanf ("%lf%lf" , &xc , &yc ) ; // lit les coordonnées du point C

scanf ("%lf%lf" , &xd , &yd ) ; // lit les coordonnées du point D

printf (f (xa , ya , xb , yb , xc , yc , xd , yd ) && f (xb , yb , xc , yc , xa , ya , xd , yd ) &&

f (xc, yc, xa, ya, xb, yb, xd, yd) ? "oui" : "non" ) ;

renvoie 0 ;

Cliquez pour exécuter ce code.
Il est difficile de dire si le code est devenu plus clair ou plus concis. Cependant, nous pouvons affirmer avec certitude qu'il ne contient aucun bloc algorithmique répétitif. Toutes les sections du code sont écrites exactement une fois. Cela réduit le risque d’erreur.

Code du Cheshire

Ce code contient des constructions que vous n'avez pas encore étudiées. Cela peut le rendre un peu mystérieux. Mais si vous continuez à ronger le granit de la science, vous maîtriserez facilement tout. Ou tu peux attendre...


C'est peut-être trop audacieux de l'appeler bon code, mais nous ferons un pas de plus dans la bonne direction. Dans le code précédent, nous avons supprimé les répétitions dans le codage de l’algorithme. Cependant, des répétitions ont été constatées dans le codage des données. Avez-vous remarqué que nous avons quatre paires de variables ? Ceux. une structure composée d'une paire de coordonnées est visible x Et oui, qui doit être combiné et appelé « point ». De telles structures en programmation C sont décrites en utilisant mot-clé structurer. Il s’agit d’une structure intermédiaire utile avant de passer à la programmation orientée objet avec classes.

Structure pour les points de codage

#inclure

struct point(double x, y;);

point de structure obtenir()



Avez-vous aimé l'article? Partagez avec vos amis !