El punto k pertenece. Convertir un dibujo complejo

Los signos de pertenencia son bien conocidos por el curso de planimetría. Nuestra tarea es considerarlos en relación con proyecciones de objetos geométricos.

Un punto pertenece a un plano si pertenece a una recta que se encuentra en ese plano.

La pertenencia a un plano recto está determinada por uno de dos criterios:

a) una línea recta pasa por dos puntos que se encuentran en este plano;

b) una recta pasa por un punto y es paralela a las rectas que se encuentran en este plano.

Usando estas propiedades, resolvamos el problema como ejemplo. Sea el plano definido por un triángulo. A B C. Se requiere construir la proyección que falta. D 1 puntos D perteneciente a este plano. La secuencia de construcciones es la siguiente (Fig. 2.5).

Arroz. 2.5. Construir proyecciones de un punto perteneciente a un plano.

a través del punto D 2 realizamos una proyección en línea recta d, tumbado en el avión A B C, intersectando uno de los lados del triángulo y el punto A 2. Entonces el punto 1 2 pertenece a las rectas A 2 D 2 y C 2 EN 2. Por lo tanto, podemos obtener su proyección horizontal 1 1 sobre C 1 EN 1 mediante línea de comunicación. Puntos de conexión 1 1 y A 1, obtenemos una proyección horizontal d 1 . D Está claro que el punto D 2 .

1 le pertenece y se encuentra en la línea de conexión de proyección con el punto

Los problemas para determinar si pertenece a un punto o a un plano recto se resuelven de forma bastante sencilla. En la Fig. La Figura 2.6 muestra el progreso en la resolución de dichos problemas. Para mayor claridad en la presentación del problema, definimos el plano por un triángulo.

Arroz. 2.6. Problemas para determinar si un punto pertenece a un plano recto. Para determinar si un punto pertenece mi A B C avión , traza una línea recta que pase por su proyección frontal E 2 A A B C 2. Suponiendo que la recta a pertenece al plano , traza una línea recta que pase por su proyección frontal E 2, construyamos su proyección horizontal , traza una línea recta que pase por su proyección frontal E 2 1 en los puntos de intersección 1 y 2. Como vemos (Fig. 2.6, a), recto Para determinar si un punto pertenece 1 no pasa por el punto Para determinar si un punto pertenece A B C.

1 . Por lo tanto, el punto En el problema de pertenecer a una línea V A B C planos triangulares En el problema de pertenecer a una línea(Fig. 2.6, b), basta con utilizar una de las proyecciones en línea recta En el problema de pertenecer a una línea 2 construir otro En el problema de pertenecer a una línea A B C 1 * considerando que En el problema de pertenecer a una línea. Como podemos ver, En el problema de pertenecer a una línea 1* y En el problema de pertenecer a una línea A B C.

1 no coincide. Por lo tanto, directamente

2.4. Líneas de nivel en un plano. La definición de líneas de nivel se dio anteriormente. Las líneas de nivel que pertenecen a un plano dado se llaman principal

. Estas líneas (líneas rectas) juegan un papel importante en la resolución de una serie de problemas de geometría descriptiva.

Arroz. 2.7. Construir las líneas principales de un plano definido por un triángulo.

Plano horizontal A B C Empezamos dibujando su proyección frontal. h 2, que se sabe que es paralelo al eje OH. Como esta línea horizontal pertenece a este plano, pasa por dos puntos del plano. A B C, es decir, puntos A y 1. Tener sus proyecciones frontales. A 2 y 1 2, a través de la línea de comunicación obtenemos proyecciones horizontales ( A 1 ya existe) 1 1 . Conectando los puntos A 1 y 1 1 , tenemos una proyección horizontal h 1 plano horizontal A B C. Proyección de perfil h 3 planos horizontales A B C será paralelo al eje OH a-priorato.

Plano frontal A B C se construye de forma similar (Fig. 2.7) con la única diferencia de que su dibujo comienza con una proyección horizontal F 1, ya que se sabe que es paralelo al eje OX. Proyección de perfil F 3 frentes deben ser paralelos al eje OZ y pasar por los salientes CON 3, 2 3 de los mismos puntos CON y 2.

Línea de perfil del avión. A B C tiene una horizontal R 1 y frente R 2 proyecciones paralelas a los ejes oy Y ONZ, y la proyección del perfil R 3 se pueden obtener desde el frente usando puntos de intersección EN y 3 s A B C.

Al construir las líneas principales de un plano, solo es necesario recordar una regla: para resolver el problema siempre es necesario obtener dos puntos de intersección con un plano dado. La construcción de líneas principales que se encuentran en un plano definido de otra manera no es más complicada que la discutida anteriormente. En la Fig. La Figura 2.8 muestra la construcción de los planos horizontal y frontal definidos por dos líneas rectas que se cruzan. , traza una línea recta que pase por su proyección frontal E 2 Y En el problema de pertenecer a una línea.

Arroz. 2.8. Construcción de las líneas principales de un plano definidas por líneas rectas que se cruzan.

Un punto pertenece a un plano si pertenece a cualquier recta de ese plano.

Una recta pertenece a un plano si dos de sus puntos pertenecen al plano.

Estas dos oraciones bastante obvias a menudo se denominan condiciones para que un punto pertenezca a un plano recto.

En la Fig. 3.6 avión posición general dado triangulo abc. Los puntos A, B, C pertenecen a este plano, ya que son los vértices de un triángulo de este plano. Las rectas (AB), (BC), (AC) pertenecen al plano, ya que dos de sus puntos pertenecen cada uno al plano. El punto N pertenece a (AC), D pertenece a (AB), E pertenece a (CD) y, por tanto, los puntos N y E pertenecen al plano (DABC), entonces la recta (NE) pertenece al plano (DABC). ).

Si se da una proyección de un punto L, por ejemplo L 2, y se sabe que el punto L pertenece al plano (DABC), entonces para encontrar la segunda proyección L 1 encontramos sucesivamente (A 2 L 2), K 2, (A 1 K 1), L 1 .

Si se viola la condición para que un punto pertenezca al plano, entonces el punto no pertenece al plano. En la Fig. 3.6, el punto R no pertenece al plano (DABC), ya que R 2 pertenece a (F 2 K 2), y R 1 no pertenece a (A 1 K 1).

En la Fig. 3.7 dado dibujo complejo plano de proyección horizontal (DCDE). Los puntos K y P pertenecen a este plano, ya que P 1 y K 1 pertenecen a la recta (D 1 C 1), que es la proyección horizontal del plano (DCDE). El punto N no pertenece al plano, ya que N 1 no pertenece a (D 1 C 1).

Todos los puntos del plano (DCDE) se proyectan sobre P 1 en línea recta (D 1 C 1). Esto se desprende del hecho de que el avión (DCDE) ^ П 1. También puedes verificar esto si haces las mismas construcciones para el punto P (o cualquier otro punto) que para el punto L (figura 3.6). El punto P 1 caerá en la línea recta (D 1 C 1). Por tanto, para determinar si un punto pertenece al plano que se proyecta horizontalmente, no es necesaria la proyección frontal (DC 2 D 2 E 2). Por lo tanto, en el futuro, los planos de proyección se especificarán mediante una sola proyección (línea recta). En la Fig. La Figura 3.7 muestra el plano S que se proyecta frontalmente, definido por la proyección frontal S 2, así como los puntos A Î S y B Ï S.

La posición relativa de un punto y un plano depende de si el punto pertenece o no al plano.

Al resolver muchos problemas, es necesario construir líneas de nivel que pertenezcan a planos generales y particulares. En la Fig. La Figura 3.8 muestra la h horizontal y la f frontal, pertenecientes al plano de posición general (DABC). La proyección frontal h 2 es paralela al eje x, por lo tanto la recta h es horizontal. Los puntos 1 y 2 de la recta h pertenecen al plano, por lo tanto la recta h pertenece al plano. Por tanto, la recta h es la horizontal del plano (DABC). Normalmente el orden de construcción es el siguiente: h 2; 1 2, 2 2; 1 1, 2 1; (1 1 2 1) = h 1 . El frontal f se dibuja a través del punto A. Orden de construcción: f 1 // x, A 1 О f 1 ; 3 1, 3 2; (A 2 3 2) = f 2 .



En la Fig. La figura 3.9 muestra las proyecciones horizontal y frontal para el plano S que se proyecta frontalmente y el plano G que se proyecta horizontalmente. En el plano S, la horizontal es una línea que se proyecta frontalmente y pasa por el punto A (trate de imaginar la horizontal como la línea de intersección de S y el plano que pasa por el punto A paralelo a P 1). El frontal pasa por el punto C. En el plano Г, la horizontal y el frontal se trazan por un punto D. El frontal es una línea que se proyecta horizontalmente.

De las construcciones discutidas anteriormente se deduce que se puede trazar una línea de nivel en un plano a través de cualquier punto de este plano.

La coincidencia de planos se puede interpretar como que un plano pertenece a otro. Si tres puntos de un plano pertenecen a otro plano, entonces estos planos coinciden. Los tres puntos mencionados no deben estar en la misma línea recta. En la Fig. 3.10 el plano (DDNE) coincide con el plano S(DABC), ya que los puntos D, N, E pertenecen al plano S(DABC).

Tenga en cuenta que el plano S definido por DABC ahora puede definirse por DDNE. Cualquier plano puede definirse mediante líneas de nivel. Para hacer esto, es necesario trazar una línea horizontal y una línea frontal en el plano a través de un punto en el plano S(DABC) (por ejemplo, a través del punto A), que definirá el plano S (las construcciones no se muestran en Figura 3.10). La secuencia de construcción de la línea horizontal es: h 2 // x (A 2 Î h 2); K 2 = h 2 Ç segundo 2 C 2 ; K 1 О B 1 C 1 (K 2 K 1 ^ x); UN 1 K 1 = h 1 . La secuencia de construcción del frontal: f 1 // x (A 1 О f 1); L 1 = f 1 Ç segundo 1 C 1 ; L 2 О B 2 C 2 (L 1 L 2 ^ x); UN 2 L 2 = F 2 . Podemos escribir S(DABC) = S(h, f).

CONVERTIR UN DIBUJO COMPLEJO

geometría descriptiva La transformación de un dibujo complejo de una figura suele entenderse como su cambio provocado por el movimiento de la figura en el espacio, o la introducción de nuevos planos de proyección, o el uso de otros tipos de proyección. Solicitud varios métodos(métodos) de transformar un dibujo complejo simplifica la solución de muchos problemas.

4.1. Método de reemplazo del plano de proyección.

El método de sustitución de planos de proyección consiste en que en lugar de uno de los planos de proyección, se introduce un nuevo plano, perpendicular al otro plano de proyección. En la Fig. La Figura 4.1 muestra un diagrama espacial para obtener un dibujo completo del punto A en el sistema (P 1 P 2). Puntos A 1 y A 2 – horizontal y proyección frontal puntos A, AA 1 A x A 2 – un rectángulo cuyo plano es perpendicular al eje x (Fig. 2.3).

nuevo avion P 4 es perpendicular a P 1. Al proyectar el punto A sobre P 4, obtenemos una nueva proyección A 4, la figura AA 1 A 14 A 4 es un rectángulo cuyo plano es perpendicular al nuevo eje x 14 = P 4 Ç P 1. Para obtener un dibujo completo, consideraremos figuras ubicadas en planos de proyección. Al girar alrededor del eje x 14, P 4 es compatible con P 1, luego al girar alrededor del eje x, P 1 (y P 4) es compatible con P 2 (en la Fig. 4.1, las direcciones de movimiento de los planos P 4 y P 1 se muestran mediante líneas discontinuas con flechas). El dibujo resultante se muestra en la Fig. 4.2. Ángulos rectos en la Fig. 4.1, 4.2 están marcados con un arco con un punto, segmentos iguales marcado con dos trazos ( lados opuestos rectángulos en la Fig. 4.1). Del dibujo complejo del punto A en el sistema (P 1 P 2) pasamos al dibujo complejo del punto A en el sistema (P 1 P 4), reemplazamos el plano P 2 con el plano P 4, reemplazamos A 2 con Un 4.

Con base en estas construcciones, formulamos una regla para reemplazar los planos de proyección (la regla para obtener una nueva proyección). A través de una proyección irremplazable realizamos nueva línea conexión de proyección perpendicular al nuevo eje, luego desde el nuevo eje a lo largo de la línea de conexión de proyección trazamos un segmento cuya longitud es igual a la distancia desde la proyección reemplazada al eje anterior, el punto resultante es la nueva proyección. Tomaremos la dirección del nuevo eje de forma arbitraria. No indicaremos el nuevo origen de coordenadas.

En la Fig. La Figura 4.3 muestra la transición de un dibujo complejo en el sistema (P 1 P 2) a un dibujo complejo en el sistema (P 2 P 4), y luego otra transición a un dibujo complejo en el sistema (P 4 P 5). En lugar del plano P 1, se introdujo el plano P 4, perpendicular a P 2, luego, en lugar de P 2, se introdujo el plano P 5, perpendicular a P 4. Usando la regla para reemplazar planos de proyección, puede realizar cualquier número de reemplazos de planos de proyección.

Tarea. Dados tres puntos A, B y C que no coinciden de dos en dos y no se encuentran en la misma recta, especificada por sus coordenadas. Determina si el punto D(x_d,y_d) pertenece al triángulo ABC.
Observemos inmediatamente que el problema se puede generalizar fácilmente para cualquier polígono convexo.

Pruebas

En las pruebas deberán reflejarse los siguientes casos:

  1. Punto estrictamente fuera del triángulo.
  2. El punto está estrictamente dentro del triángulo.
  3. El punto coincide con uno de los vértices del triángulo.
  4. El punto se encuentra en uno de los lados del triángulo.
  5. El punto se encuentra en la continuación de uno de los lados del triángulo.
  6. Uno de los lados del triángulo es paralelo a uno de los ejes coordenados.
  7. Dos lados del triángulo son paralelos a los ejes coordenados.
xa ya xb yb xc yc xdd yarda ¿Pertenece?
-1 -1 1 -1 0 1 2 2 No
-2 -2 1 -1 0 1 0 0
-1 -1 1 -1 0 1 0 1
-1 -1 1 -1 0 1 0.5 0
-1 -1 1 -1 0 1 1 3 No
-1 -1 1 -1 0 1 0 0
0 0 2 0 0 2 1 1
0 0 2 0 0 2 5 5 No

Mala decisión

EN libros de texto escolares A menudo se recomienda resolver este tipo de problemas comprobando las condiciones S_(ABC)=S_(ABD)+S_(BCD)+S_(CAD). En la implementación informática, esto lleva a la necesidad de comparar dos numeros reales por la igualdad. Esta operación extremadamente desagradable sólo puede realizarse con hasta cierto punto fiabilidad. Aquellos. tendrás que comprobar si algún número pequeño seleccionado “de la nada” no excede el valor absoluto \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étodos numéricos y métodos de cálculo aproximado y no seguirán este camino.

No es una mala decisión

Comencemos con una simple observación:

Todos los puntos de un triángulo (y de cualquier polígono convexo) deben estar en el mismo lado de una línea que pasa por cada lado.

Escribamos la ecuación de una recta que pasa, por ejemplo, por los puntos A y B. Obtenemos \left(x-x_A \right) \left(y_B-y_A \right)-\left(y-y_A \right) \left(x_B-x_A \ right) = 0. Escribí la ecuación de tal forma que no tuviera que hacer división y preocuparme por el cero en el denominador.

Ahora para cualquier punto \left(x;y \right) podemos calcular lado izquierdo dada la igualdad. Para los puntos que se encuentran en una línea recta deberíamos obtener cero. Al mismo tiempo, la línea recta dividirá el avión en dos semiplanos. Los puntos que se encuentran en el mismo semiplano darán valores positivos. Y los puntos del otro semiplano son negativos.
Estamos listos para comprobar la primera condición: ¿el punto D \left(x_d,y_d \right) pertenece al mismo semiplano que el punto C \left(x_c,y_c \right) con respecto a la recta \left(AB \? bien)? Para ello, sustituimos ambos puntos en el lado izquierdo de la ecuación de la recta anterior y nos aseguramos de que los valores obtenidos sean del mismo signo. ¿Qué pasa si uno de los puntos da exactamente cero? Esto significa que el punto se encuentra sobre una recta. Según las condiciones del problema, este sólo puede ser el punto D. Entonces pertenece al triángulo independientemente del signo de la expresión calculada para el punto C.

Tenga en cuenta que no afirmamos que para ningún punto de la recta nuestros cálculos aproximados den necesariamente un cero exacto. Esto estaría mal. Sólo afirmamos que si los cálculos realizados con la precisión de que disponemos todavía dieron un cero exacto, entonces forzado contar este punto acostado en esta línea.

Naturalmente, tendremos que anotar condiciones similares para los dos lados restantes del triángulo (o para todos los lados restantes de un polígono convexo).

Código incorrecto

Comencemos declarando variables y leyendo sus valores. Después de esto, escribiremos una condición muy engorrosa, que verifica la membresía.

¿El punto pertenece al triángulo?

#incluir

int principal()

// leer las coordenadas del punto A

// lee las coordenadas del punto D

// lee las coordenadas del punto C

// lee las coordenadas del punto D

imprimirf(

(((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 ) ?

"sí No" ) ;

devolver 0;

El código anterior tiene importantes inconvenientes. Tuvimos que escribir la ecuación de una recta que pasa por dos puntos tres veces y sustituir las coordenadas en cada uno de ellos dos veces para comprobar el signo. Esto significa que tuvimos que escribir una fórmula seis veces con diferentes sustituciones. Con el enfoque que utilizamos, tenemos dos problemas. Primero, la condición se ha vuelto demasiado compleja para ser comprendida fácilmente. En segundo lugar, y esto es mucho peor, dicho código aumenta la probabilidad de cometer un error \frac ( 1-( \left(1-p \right) )^( 6 ) )( p ) veces. Es curioso, pero esto significa que la probabilidad de que un programador novato cometa un error se duplica y la de un programador experimentado aumenta seis veces. Es bueno que los programadores experimentados no escriban código como este.

No es un mal código

Usemos lo que ya sabemos crear. funciones nativas para reducir ligeramente la cantidad de código y hacerlo más fácil de leer.
Escribamos la condición en el lenguaje de programación C++:

Solución usando funciones

#incluir

// Calcula la posición del punto D(xd,yd) relativa a la línea AB

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

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

// ¿Los puntos C y D se encuentran en el mismo lado de la recta (AB)?

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

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

int principal()

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

scanf ("%lf%lf", &xa, &ya); // leer las coordenadas del punto A

scanf ("%lf%lf", &xb, &yb); // lee las coordenadas del punto B

scanf ("%lf%lf", &xc, &yc); // lee las coordenadas del punto C

scanf ("%lf%lf", &xd, &yd); // lee las coordenadas del punto 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)? "sí No" ) ;

devolver 0;

Haga clic para ejecutar este código.
Es difícil decir si el código se ha vuelto más claro o más conciso. Sin embargo, podemos decir con seguridad que no contiene bloques algorítmicos repetidos. Todas las secciones del código se escriben exactamente una vez. Esto reduce la posibilidad de error.

código de cheshire

Este código contiene construcciones que aún no has estudiado. Esto puede hacerlo parecer un poco misterioso. Pero si continúas royendo el granito de la ciencia, fácilmente lo dominarás todo. O puedes esperar...


Puede que sea demasiado atrevido llamarlo buen codigo, pero daremos un paso más en en la dirección correcta. En el código anterior, nos deshicimos de las repeticiones en la codificación del algoritmo. Sin embargo, hubo repeticiones en la codificación de datos. ¿Notaste que tenemos cuatro pares de variables? Aquellos. se ve una estructura que consta de un par de coordenadas X Y y, que debe combinarse y denominarse "punto". Estas estructuras en la programación C se describen utilizando palabra clave estructura. Esta es una estructura intermedia útil antes de pasar a la programación orientada a objetos con clases.

Estructura para codificar puntos.

#incluir

punto de estructura (doble x, y;);

punto de estructura obtener()



¿Te gustó el artículo? ¡Compartir con tus amigos!