El algoritmo de Cohen-Sutherland ( ing. Cohen-Sutherland ) es un algoritmo de corte de segmento , es decir, un algoritmo que le permite determinar la parte del segmento que intersecta el rectángulo . Fue desarrollado por Dan Cohen e Ivan Sutherland en Harvard en 1966-1968 y publicado en la conferencia AFIPS en 1968 [ 1] [2] .
El algoritmo divide el plano en 9 partes con líneas rectas que forman los lados del rectángulo. A cada una de las 9 partes se le asigna un código de cuatro bits. Los bits (de menor a mayor) significan "a la izquierda", "a la derecha", "abajo", "arriba". En otras palabras, para esas tres partes del plano que están a la izquierda del rectángulo, el bit menos significativo es 1, y así sucesivamente.
El algoritmo determina el código para los extremos del segmento. Si ambos códigos son iguales a cero, entonces el segmento está completamente dentro del rectángulo. Si los códigos AND bit a bit no son iguales a cero, entonces el segmento no se cruza con el rectángulo (porque esto significa que ambos extremos del segmento están en el mismo lado del rectángulo). En otros casos, el algoritmo selecciona el final del segmento (o uno de los extremos) que tiene un código distinto de cero (es decir, ubicado fuera del rectángulo), encuentra el punto de intersección más cercano del segmento con una de las líneas que forma los lados del rectángulo y usa este punto de intersección como un nuevo segmento final. El segmento acortado vuelve a pasar por el algoritmo.
La implementación del algoritmo para el modelo 3D es idéntica a la implementación 2D, excepto que en lugar de un código de cuatro bits, se usa un código de seis bits (dos bits adicionales de profundidad).