Loading

Alison's New App is now available on iOS and Android! Download Now

Study Reminders
Support
Text Version

Set your study reminders

We will email you at these times to remind you to study.
  • Monday

    -

    7am

    +

    Tuesday

    -

    7am

    +

    Wednesday

    -

    7am

    +

    Thursday

    -

    7am

    +

    Friday

    -

    7am

    +

    Saturday

    -

    7am

    +

    Sunday

    -

    7am

    +

Hola y bienvenido a la conferencia número 21 en el curso, Gráficos Informáticos. Actualmente estamosdiscutiendo la interconexión de gráficos, así es como la escena 3D se convierte en una imagen 2D en la pantalla del sistema, cuáles son las etapas que hay para realizar esta tarea. Juntos se conocen estas etapascomo gasoducto, como ya hemos comentado. Por lo tanto, vamos a tener rápidamente un vistazo a las etapas del gasoductoy entonces comenzaremos nuestra discusión sobre el tema de hoy.¿Cuáles son las etapas del gasoducto? Tenemos la representación de objetos como la primera etapa y, a continuación, modelando la transformación decomo la segunda etapa, la iluminación o la asignación de color a los objetos como la tercera etapa, la interconexión de visualización decomo la cuarta etapa y la conversión de exploración como la quinta etapa. Así que, aquí me gustaría queresubrayara en el punto que esta secuencia que se muestra aquí no necesita ser seguida exactamentedurante la implementación del gasoducto, allí las etapas tal vez en una secuencia ligeramente diferente.Ahora, entre estas etapas, ya hemos discutido la primera etapa, la segunda etapa, la tercera etapa, yactualmente estamos discutiendo la cuarta etapa que está viendo el gasoducto. Como puede ver aquí, en el conducto de visualización dehay subetapas. Por lo tanto, hemos visto la transformación, el recorte, la eliminación oculta de la superficie de, la transformación de proyección y la transformación de ventana a vista.Entre ellas, ya hemos discutido en las conferencias anteriores, ya hemos discutido la transformación de visualización, la transformación de proyección y la transformación de ventana a vista. Quedan dos operaciones más en la cuarta etapa, es decir, el recorte y la eliminación de la superficie oculta. Así que, estas operaciones vamos a discutir en los días y las conferencias posteriores.Así que, en la etapa de visionado de tuberías hemos cubierto estas tres transformaciones: ver la transformación, la transformación de la proyección, y la transformación del viewport ya.Y hay dos operaciones más: el recorte y la eliminación de la superficie oculta que son parte de la cuarta etapa.Así que, estas operaciones vamos a cubrir en las conferencias que vamos a tener esta semana.Empecemos con el recorte. Qué es esta operación y cómo se realiza.Si puede recordar, antes hablamos de un concepto llamado volumen de vista. Entonces, esencialmente lo que discutimos es que cuando estamos tratando de generar una imagen 2D, esencialmente esto es análogo a tomar una foto de una escena 3D. Por lo tanto, primero realizamos la transformación de vista, para transferir ese contenido del sistema de coordenadas mundial para ver el sistema de coordenadas, entonces realizamos la transformación de proyección para proyectar la descripción del sistema de coordenadas de vista 3D de la escena a una descripción de plano de vista 2D. Y, por último, realizamos la correlación de ventana a vista.Sin embargo, en este proceso lo que proyectamos en el plano de vista, proyectamos sólo los objetos que están presentes en el volumen de vista que es una región en el espacio de coordenadas de vista 3D que hemos decidido proyectar. Por lo tanto, los objetos que estén dentro del volumen de vista deben proyectarse. Por lo tanto, necesitamos definir este volumen de vista en esta región 3D, en el sistema de coordenadas de vista antes de la proyección.Así que el objeto que se encuentra dentro de este volumen se proyecta, mientras que los objetos que están fuera del volumen se descartan. Por ejemplo, vamos a echar un vistazo a esta figura. Aquí el volumen de vista está en este tubo paralelo rectangular. Ahora, como puede ver, este objeto está completamente dentro del volumen de vista, por lo que se proyectará en el plano de la vista. Este objeto está parcialmente dentro del volumen de vista, por lo que la parte que esté dentro del volumen de vista se proyectará y la parte externa, ésta se descartará. Mientras que en este caso, todo el objeto está fuera del volumen de vista, por lo que no se proyectará.Por lo tanto, tenemos tres situaciones. En un caso, todo el objeto está dentro del volumen, por lo que se proyecta todo el objeto. En el otro caso, el objeto está parcialmente dentro del volumen. De modo que la parte que está dentro del volumen será proyectada, mientras que la parte externa será descartada. Y en el tercer caso, tenemos todo el objeto fuera del volumen que será descartado. Ahora, el proceso de descartar objetos se denomina recorte. Por lo tanto, antes de la proyección realizaríamos el recorte y entonces los objetos que queden deben ser proyectados.Ahora, la pregunta es cómo un ordenador puede descartar o grabar un objeto? Eso se hace a través de algunos programas o algoritmos, que colectivamente se conocen como algoritmos de recorte. Por lo tanto, realizamos recorte con la ayuda de algunos algoritmos de recorte. Y en esta conferencia, y conferencias posteriores vamos a pasar por pocos de esos algoritmos que son más fáciles de entender.Antes de iniciar nuestra discusión sobre los algoritmos de recorte, debemos tener en cuenta dos puntos. Lo primero es que los algoritmos estarán asumiendo que el recorte se realiza contra el volumen de vista canónica. Para recordar, un volumen de vista canónica es un volumen de vista estandarizado donde la forma deel volumen de vista es un conducto paralelo rectangular y sus planos delimitador están dentro de un rango fijo. Por lo tanto, es un volumen de vista estandarizado.Por lo tanto, siempre que estamos hablando de recorte, suponemos que la escena ya se transfiere al volumen de vista canónica y luego estamos realizando recortes. En segundo lugar, primero discutiremos los algoritmos de recorte en 2D para simplificar. Será más fácil entender el recorte cuando estamos tratando con objetos 2D y luego ampliaremos nuestra discusión al recorte 3D.Así que, veamos cuáles son los algoritmos que podemos utilizar para realizar recortes en 2D.Ahora ya que estamos discutiendo el recorte en 2D, tenemos que limitarnos a los conceptos 2D. Ahora ver el volumen que hemos mencionado anteriormente es un concepto 3D pero que no es relevante en 2D. Así que en lugar de ver el volumen ahora utilizamos el concepto de ventana de vista que es una región cuadrada en el plano de la vista. En conferencias anteriores, ya nos hemos presentado a la idea de que hemos mencionado que en el plano de vista hay una ventana de recorte en la que se proyectan los objetos, el concepto es el mismo que la ventana de vista.Así que es equivalente en realidad, para suponer que el volumen de vista y todos los objetos ya están proyectados en el plano de la vista, que es otra forma de ver el recorte en 2D. Así que ya se hace la proyección y tenemos ventana de recorte en 2D ahora queremos realizar recortes. Así que es después de la proyección que queremos realizar el recorte.Por lo tanto, este volumen de vista se proyecta para formar la ventana y otros objetos se proyectan para formar puntos, líneas y áreas de relleno, como un polígono. Por lo tanto, tenemos una ventana que se forma proyectando el volumen de vista en el plano de vista y luego se proyectan otros objetos para formar puntos, líneas así como áreas de relleno como polígonos.Así, entonces nuestro objetivo se reduce a realizar la operación de recorte de puntos, líneas y áreas de llenado con respecto a la ventana. Por lo tanto, el escenario es que tenemos una ventana de recorte o ventana de vista y tenemos objetos que se proyectan en el plano de vista y queremos recortar los objetos proyectados decontra esta ventana donde la proyección tiene lugar en forma de puntos, líneas o áreas de relleno.Empecemos por lo más simple de todo recorte, es decir, el recorte de puntos. Cómo recortar un punto en la ventana de la vista.Supongamos que se nos da un punto con una coordenada x, y. Ahora la idea de recorte es simple, tenemos que comprobar si el punto está dentro de la ventana o fuera. Por lo tanto, lo que tenemos que hacer essimplemente tener que comprobar si los valores de coordenadas se encuentran dentro del límite de la ventana. Por lo tanto, tenemos que realizar estos controles. Por lo tanto, aquí estamos comprobando el valor x contra los límites de la ventana y el valor y aquí estamos comprobando los límites de la ventana para determinar si están dentro del límite o fuera. Así que, si está dentro del límite, mantenemos el punto en caso contrario lo recorremos. Esa es una idea muy simple.Más complicado es el recorte de líneas. Aquí no tenemos ni un solo punto, tenemos una gran cantidad de puntos a tener en cuenta. Por lo tanto, el algoritmo correspondiente sería más complicado de lo que hemos visto para el recorte de puntos.Hablemos primero de un enfoque intuitivo muy simple. Lo que podemos hacer, podemos representar cualquier segmento de línea con sus puntos finales y luego revisamos las posiciones de punto final para decidir si se va a clip o no. Por lo tanto, estamos representando una línea con sus puntos finales. A continuación, para cada punto final, estamos aplicando este enfoque de recorte de puntos para comprobar si el punto final está dentro del límite o no. Y después de comprobar los dos puntos finales, podemos llegar a una conclusión si la línea está dentro de la ventana o no.Pero hay un problema. Si seguimos este enfoque, puede haber cualquiera de los tres escenarios. En el primer caso, ambos puntos finales pueden estar dentro del límite de la ventana. Considere este segmento de línea como L1. Aquí, ambos puntos finales están dentro de la frontera. Así que no nos pinzamos. En el segundo caso, un punto final está dentro y el otro punto final está fuera. Considere L2, aquí este punto final está dentro y este punto final está fuera. Por lo tanto, en ese caso tiene que ser recortado. Y luego hay un tercer escenario donde ambos puntos finales están afuera.Sin embargo, aquí tenemos un problema. Considerada la línea L4. En este caso, tanto los puntos finales están fuera y toda la línea está fuera, por lo que simplemente podemos descartarla. Pero en caso de L3, aquí también los dos puntos finales están fuera. Sin embargo, una parte de ella definida entre estos dos puntos de intersección está realmente dentro de la ventana de vista. Por lo tanto, no podemos descartar totalmente la línea. En su lugar, tenemos que recortar estas partes externas y descartarlas, mientras que esta parte interior debe mantenerse. Por lo tanto, en este caso, entonces tenemos que revisar las intersecciones de límite de línea para determinar si alguna porción está dentro de la ventana o no.Ahora, esta intersección de cheques son computacionalmente caros porque implican operaciones de coma flotante. Y en aplicaciones prácticas, cada cambio de pantalla implica un gran número de tales comprobaciones de intersección, lo que puede ralentizar el proceso de representación general e incluso puede resultar poco práctico. Por lo tanto, requerimos ununa solución de este tipo es proporcionada por un algoritmo llamado, el algoritmo de Cohen-Sutherland. Vamos a través de los pasos del algoritmo.Así que, en este algoritmo, asumimos una representación del plano de la vista. Así que aquí suponemos que la ventana y sus alrededores se dividen en nueve regiones como se muestra aquí. Así, esta es la ventana, la parte central, y luego tenemos arriba a la izquierda, arriba, arriba a la derecha con respecto a la ventana, izquierda, derecha, con respecto a la ventana de nuevo, y abajo a la izquierda, abajo, y abajo a la derecha con respecto a la posición de la ventana de nuevo. Por lo tanto, se supone que estas nueve regiones representan el plano de vista ycómo conseguimos la región nueve, ampliando los límites de la ventana tal como se muestra aquí. Entonces, esta es la primera suposición.Entonces lo que hacemos, asignamos un código a cada una de estas regiones. Ahora, hay nueve regiones. Por lo tanto, requerimos cuatro bits para representar a todas las nueve regiones, lo cual es muy obvio y cada región recibe un código único, un código único de cuatro bits. Ahora, cada bit indica la posición de la región con respecto a la ventana. Por lo tanto, esta es la representación de nueve regiones y son los códigos asignados a estas nueve regiones. Nota aquí que cada código es único.Así que arriba a la izquierda se representa por 1001, arriba se representa por 1000, arriba a la derecha se representa por 1010, izquierda representada por 0001, derecha representada por 0010, abajo a la izquierda representada por 0101, abajo representada por 0100, y por debajo de la derecha representada por 0110. La región central o la ventana está representada por todos los ceros.Y la organización del código se parece a algo así, donde el bit más a la izquierda indica la ubicación, el siguiente bit indica a continuación la ubicación, el siguiente bit indica a la derecha, y el bit más a la derecha indica la ubicación de la izquierda. Por lo tanto, cada ubicación puede tomar 1 o 0, 1 significa que está por encima, 0 significa que está por debajo. Por ejemplo, considere 1001. Por lo tanto, tenemos por encima de 1, por debajo de 0, a la derecha 0, y a la izquierda 1, eso significa que la región está por encima de la izquierda, como se muestra aquí, porque estos dos bits son 1, mientras que los bits inferiores y correctos son 0. Así es como los códigos se asignan a cada región.Ahora es el supuesto y la asignación del código. Entonces el algoritmo comienza a trabajar una vez que se hacen esas cosas. Por lo tanto, en el paso uno del algoritmo asignamos códigos de región a los puntos finales del segmento de línea. Así que dado un segmento de línea, primero tenemos que asignar sus puntos finales, los códigos de región correspondientes. Cómo podemos hacer eso, asumir que el punto final, un punto final es denotado por P (x, y) y la ventana se especifica por estos valores límite Xmin, Xmax, Ymin, Ymax. Por lo tanto, estos son los valores límite que especifica la ventana.Entonces lo que hacemos, realizamos una simple comprobación para determinar el código de región del punto final P. Cuáles son esas comprobaciones, por lo que comprobamos el signo de la diferencia entre Y y Ymax. P tiene coordenadas x e y y Xmax, Ymax, Xmin, Ymin son los límites de la ventana. Por lo tanto, tomamos la diferencia de Y y Ymax y comprobamos su signo. Ahora ellos firman esta cantidad, nos dará un resultado 1 si esta cantidad es positiva, de lo contrario es 0 en caso de negativo. Por lo tanto, lo hacemos para cada posición de bit. Así que, para el bit 3, comprobamos la diferencia entre Y y Ymax.Para el bit 2, comprobamos la diferencia entre Ymin e Y. Para el bit 1 comprobamos la diferencia entre X y Xmax y para el bit 0 comprobamos la diferencia entre Xmin y X y tomamos su signo y luego aplicamos esta regla para obtener el valor de bit real.Por lo tanto, el primer paso es la asignación de códigos de región a los puntos finales. En el paso 2, realizamos más comprobaciones en los códigos de región que se asignan a los puntos finales y luego tomamos medidas. Por lo tanto, si ambos códigos de punto final resultan ser 0000, significa que la línea está completamente dentro. Por lo tanto, mantenemos la línea. Ahora, si la operación AND lógica AND o la operación bit a bit en los códigos de punto final no es igual a 0000, entonces la línea está completamente fuera y descartamos toda la línea. Tenga en cuenta que, aquí no tenemos que comprobar la intersección.En el siguiente paso, cuando se produce ninguno de los casos que acabamos de discutir en el paso 2, sabemos que la línea está parcialmente dentro de la ventana y tenemos que pintarla. Así, en el paso 2 realizamos controles para decidir si la línea está completamente dentro o completamente fuera y en consecuencia damos paso. Entonces si ninguna de estas condiciones satisface eso significa que la línea está parcialmente dentro y tenemos que sujetarla, que hacemos en el paso 3.Así que para el recorte, necesitamos calcular el límite y el punto de intersección de la línea. Por lo tanto, aquí no podemos evitar el cálculo de los puntos de intersecciones. Y que podemos hacer de diferentes maneras, una posible manerapuede ser tomar los límites en un orden particular. Por ejemplo, primero por encima de los límites y luego por debajo del límite, luego el límite derecho, luego el límite izquierdo y así sucesivamente, cualquier orden está bien. Y para cada límite comparar los valores de bits correspondientes de los códigos de región de punto final para decidir si la línea está cruzando el límite o no.Si los códigos de región no son los mismos entonces la línea se cruza con ese límite en particular, entonces formaremos la ecuación de línea desde los puntos finales y determinar el punto de intersección resolviendo las ecuaciones. Y luego asignamos código de región al punto de intersección, como lo hemos hecho antes. Y lo hacemos para todos los límites y en este proceso, descartamos el segmento de línea que se encuentra fuera de la ventana.Ahora tenemos un nuevo código de región que es el punto de intersección y el otro punto final con respecto a un límite en particular. Por lo tanto, comparamos los dos nuevos puntos finales para ver si están completamente dentro de la ventana. Si lo son, entonces por supuesto que mantenemos eso, si no entonces tomamos el otro punto final y repetimos el proceso. Así que, lo que hacemos en el paso 3, en el paso 3 vamos por recortar la línea. Empezamos con un punto final; asignar un código de región que ya está allí, comprobamos el código de región con respecto a todos los límites siguiendo una secuencia particular y en base a esa comprobación determinamos si la línea está intersectando un límite en particular.Si es así, entonces utilizamos las ecuaciones de línea y las ecuaciones de límite para resolver para el punto de intersección. A continuación, asignamos un nuevo código, la forma en que lo hicimos antes de este punto de intersección y el punto de intersección y el punto final claramente se encuentra fuera de la ventana de recorte y lo descartamos. Entonces tenemos dos nuevos puntos finales que es el punto de intersección y el punto final original restante. Comprobamos si está completamente dentro de la ventana si es que lo mantenemos, de lo contrario repetimos el proceso otra vez para el otro punto final.Tratemos de entender lo que hemos discutido hasta ahora en términos de algunos ejemplos.Así que antes hemos mostrado cómo asignar los códigos de región, y en base a eso cómo determinar si recortar una línea o no. Consideremos este segmento de línea definido entre el punto final A y B. Y la extensión de ventana que se proporciona aquí, el Xmin es 2, Xmax es 4, Ymin es 2 y Ymax es 4. Comprobamos el signo y, por consiguiente, asignamos código de región a los puntos finales. Por ejemplo, para A, intentemos hacer esto. Vamos a empezar con el bit 3, aquí la expresión correspondiente es signo de 3 menos 4, que es signo de menos 1, ya que es una cantidad negativa por lo que el bit 3 será 0.Del mismo modo, bit 2 otra vez la cantidad negativa por lo que será 0. Bit 1, esta es una cantidad positiva 1 por lo que producirá 1. Y el bit 0 que es de nuevo una cantidad negativa y estamos tomando el signo de ello, por lo que resultará en 0. Por lo tanto, nuestro código de región será dado por estos bits.O 0010. De una manera similar, podemos comprobar para B que es 0010, será el mismo.Ahora vamos al paso 2, serie de cheques. Por lo tanto, la primera comprobación es si ambos puntos finales son iguales a 0. Ahora no son 0000, por lo que la primera comprobación falla. La segunda comprobación es si son lógicos AND no es igual aa 0000 que pasa a ser verdadero en este caso. Por lo tanto, podemos estar seguros de que esta línea está completamente fuera del límite de la ventana. Por lo tanto, no se requiere más comprobación y simplemente podemos descartarla. Por lo tanto, esta línea en particular será completamente descartada sólo con la comprobación de los códigos de la región, hemos logrado determinar que está completamente fuera.Ahora vamos a considerar otro segmento de línea, que se da por los puntos finales P y Q. Como de costumbre, vamos a determinar primero los códigos de la región de punto final. El código P resultará ser 0000, como puede ver aquí para el signo de bit 3 de una cantidad negativa 0. De nuevo, la cantidad de bit 2 negativa 0, la cantidad negativa de bit 1 0 y el bit 0 de una cantidad negativa de nuevo 0. Del mismo modo, podemos determinar el código de región de Q, que resulta ser 0010. Puedes probarte a ti mismo.Luego, una vez que se decidan los códigos de la región, vamos por la serie de cheques. La primera comprobación falla, los puntos finales ambos puntos finales no son 0000. La segunda comprobación también falla, lógica Y resulta ser 0000. Por lo tanto, no está completamente fuera. Por lo tanto, tenemos que ir por el tercer paso y necesitamos determinar las intersecciones.Desde los puntos finales podemos derivar la ecuación de la línea, como se muestra aquí. Y luego verificamos la intersección de esta línea con los límites en el orden siguiente, arriba del límite primero vamos a comprobar con, entonces debajo de la frontera, luego el límite derecho, y luego el límite izquierdo. Por lo tanto, por encima del límite dese puede ver que el bit 3 que representa el límite anterior de P y Q, ambos puntos finales son los mismos. Por lo tanto, la línea no cruza por encima de la frontera. De forma similar, puede ver que esa línea no se cruza por debajo del límite. Hay una diferencia de los valores de bits en el caso del bit 1, estos valores son diferentes. Por lo tanto, podemos concluir que la línea cruza el límite derecho.Por lo tanto, tenemos que encontrar el punto de intersección con el límite derecho. Ahora, la ecuación de la línea de límite derecha es x igual a 4, como puede ver aquí. Y ponemos este valor en la ecuación de la línea para obtener el punto de intersección en 4, 5 por 2. Este es el punto de intersección. Ahora, como puede ver, llamemos a esta Q ’. Por lo tanto, puesto que la línea ha cruzado el límite, Q ’ Q está fuera del límite porque Q está fuera. Por lo tanto, este segmento se descarta y el nuevo segmento de línea pasa a ser PQ ’. Estos son los dos nuevos puntos finales.A continuación, determinamosCódigo de región de Q ’ como hemos visto anteriormente, que resulta ser 0000. Ahora, como puede ver tanto P como Q ’ tienen el mismo código de región 0000. Por lo tanto, este segmento está totalmente dentro de la ventana. Y se retiene cambiando Q a Q ’.Una cosa quedó, antes comprobamos por encima de la frontera derecha, no comprobamos el límite izquierdo. Sin embargo, como podemos ver con estos códigos de región de P y Q ’ porque es el nuevo segmento de línea bit 0 es el mismo para ambos extremos, por lo que no hay intersección. Y así, al final del algoritmo, obtenemos PQ ’ como línea recortada. Así que, así es como podemos comprobar el recorte siguiendo este algoritmo.Veamos un ejemplo más. Ahora vamos a considerar un segmento de línea ligeramente más complicado dado por M y N. Como antes de que podamos determinar el código de región como se muestra aquí, para los puntos finales M y N que resulta ser para M es 0001 y para N es 0010.Entonces en el siguiente paso, vamos para los cheques, serie de cheques. Aquí también falla la primera comprobación, ambos puntos finales no son iguales a 0000. La segunda comprobación también falla. Lógico Y resulta en 0000, por lo que no es 0000, por lo que la segunda comprobación falla. Así, no podemos guardarlo por completo ni descartarlo completamente. Por lo tanto, debe haber alguna intersección y tenemos que determinar esa intersección y clip la línea. Por lo tanto, tenemos que determinar los puntos de intersección de límite de línea y clip.Para eso tenemos que decidir la pregunta de línea de sus puntos finales, que es fácil como se muestra aquí. Entonces comprobamos la intersección de la línea con los límites y siguiendo este orden arriba, abajo, derecha, y los límites de la izquierda. Por lo tanto, el bit 3 de M y N son los mismos que significa que la línea no cruza por encima del límite. Del mismo modo, no se cruza por debajo del bit de límite 2 es el mismo. Sin embargo, el bit 1 es diferente y la línea cruza el límite derecho.Entonces verificamos los puntos de intersección, por lo que la ecuación de límite derecho es x igual a 4. Por lo tanto, usando esta ecuación y la ecuación de la línea obtenemos el punto de intersección para ser N ’ (4, 9) por 4, que está aquí. Ahora este punto es el punto de intersección entre el límite derecho y la línea y puesto que N está fuera del límite derecho, por lo que antes de descartar este segmento N ’ N y el nuevo segmento de línea se convierte en MN ’, por lo que esta parte. Entonces decidimos el código de región del nuevo punto final N ’ que es 0000.Así, ahora tenemos dos nuevos puntos finales M y N ’. M tiene el código 0001 y N ’ tiene el código 0000. Ahora antes revisamos para arriba, abajo, y el límite derecho, la comprobación del límite izquierdo estaba pendiente, vamos a hacer eso después. Aquí si comprobamos, podemos ver que para el límite izquierdo, los valores de bits no son los mismos, eso significa de nuevo que hay una intersección con el límite izquierdo y comprobamos que los puntos de intersección entre el límite izquierdo y el nuevo segmento de línea dados por los puntos finales M y N ’.Ahora, sabemos que la ecuación de límite izquierdo es x=2. Utilizamos esta ecuación y la ecuación de la línea para obtener el punto de intersección M ’, que es 2 y 11/4, aquí. Ahora el punto M está fuera del límite izquierdo que ya conocemos, eso significa en el lado izquierdo, por lo que descartamos este segmento MM ’. Y el nuevo segmento de línea se convierte en M ’ N ’ entre estos dos puntos, es M ’ y este es N ’. Por lo tanto, ahora decidimos o determinamos el código de región de este nuevo punto final M ’ que es 0000.A continuación, vamos a comprobar de nuevo los códigos de región de N punto, paso 2 del algoritmo y encontramos que M ’ y N ’ son el mismo código de región 0000, que significa que todo este segmento de línea M ’ y N ’ está dentro de la ventana. Por lo tanto, el algoritmo restablece el segmento de línea a M ’ N ’ y ya hemos comprobado todos los límites, por lo que no queda más límite para comprobar. Y el algoritmo devuelve este segmento de línea como el segmento de línea recortado y se detiene. Así es como funciona el algoritmo.Así que para resumir, el algoritmo de Cohen Sutherland está diseñado para reducir los cálculos de intersección. Si vamos por un método intuitivo entonces cuando la línea está completamente dentro o completamente fuera, esdifícil de decir. Por lo tanto, para cada línea tenemos que ir para las comprobaciones de intersección, que no es necesario en el caso del método de Cohen Sutherland.Aquí, asignamos algunos códigos de región a los puntos finales de línea y basados en los códigos de la región podemos decidir si la línea está completamente dentro o completamente fuera. En esos casos, no necesitamos ir a buscar intersección. Sin embargo, si la línea no está completamente dentro o completamente fuera, sabemos que hay alguna intersección y necesitamos clip, ahí tenemos que ir por algunas revisiones de intersección y averiguar los puntos de intersección. Por lo tanto, todavía queda alguna cantidad de cálculo de intersección.Pero reduce el cálculo en gran medida, lo que es beneficioso para hacer que los complexiones sean más rápidos. Pero como he dicho, todavía conserva algunos cálculos de intersección.Por lo tanto, este algoritmo en particular funciona bien cuando el número de líneas que se pueden recortar sin más procesamiento es grande en comparación con el tamaño del conjunto de entrada de líneas. Por lo tanto, cuando el número de líneas que se pueden recortar sin más procesamiento es grande, entonces claramente Cohen Sutherland funciona mucho mejor porque no hay ningún cálculo de intersección está involucrado. Pero si eso no es así, entonces todavía tiene algún problema.Hay de hecho otros métodos más rápidos que se desarrollan para reducir más el cálculo de las intersecciones y esos métodos se desarrollan en base a pruebas más eficientes que no requieren intersección o operaciones de coma flotante complejas.Hubo un algoritmo propuesto por Cyrus y Beck, que fue uno de los primeros intentos en esta dirección y que se basó en ecuaciones de línea paramétrica. Más tarde, Liang y Barsky propusieron una versión más eficiente.Sin embargo, en este curso no vamos a discutir más esos algoritmos. Si usted está interesado entonces usted puede referirse al material de lectura que será mencionado a continuación. Así que para resumir, hoy hemos aprendido acerca del recorte en 2D, recorte significa descartar objetos que están fuera del volumen de vista. En caso de recorte en 2D queremos descartar líneas o puntos que están fuera de la ventana de recorte. Más adelante, veremos cómo desechar el área de relleno también que están fuera de la ventana de recorte. Y para hacer eso, confiamos en algún algoritmo para reducir los cálculos de puntos de intersección extensos.Un algoritmo de este tipo que hemos aprendido hoy, que es el algoritmo de Cohen Sutherland. Es bastante eficiente, sin embargo, todavía conserva cierta cantidad de cálculos complejos que pueden ser aliviados con otros algoritmos más eficientes, es decir, por Cyrus y Beck o por Liang y Barsky. Por lo tanto, esos algoritmos que no hemos discutido.Si quieres aprender sobre los que puedes hacer referencia al material de lectura que se menciona en esta diapositiva. Por lo tanto, usted puede referirse a este libro. A través del capítulo 7, sección 7.1, hoy discutimos la sección 7.1.1. Sin embargo, si usted está interesado en aprender sobre el algoritmo de Liang Barsky, entonces usted puede pasar a través de la siguiente sección también, sección 7.1.2 también. No vamos a discutir ese algoritmo, pero usted puede pasar a través de él, si desea más información. Eso es todo para hoy. Gracias y adiós.