Cohen-Sutherland-algoritmen ( eng. Cohen-Sutherland ) är en segmentskärningsalgoritm , det vill säga en algoritm som låter dig bestämma den del av segmentet som skär rektangeln . Den utvecklades av Dan Cohen och Ivan Sutherland vid Harvard 1966-1968 och publicerades på AFIPS-konferensen 1968 [ 1] [2] .
Algoritmen delar upp planet i 9 delar med raka linjer som bildar rektangelns sidor. Var och en av de 9 delarna tilldelas en fyrabitarskod. Bits (lägst till högst) betyder "till vänster", "till höger", "under", "ovan". Med andra ord, för de tre delarna av planet som är till vänster om rektangeln är den minst signifikanta biten 1, och så vidare.
Algoritmen bestämmer koden för segmentets ändar. Om båda koderna är lika med noll, är segmentet helt inom rektangeln. Om de bitvisa OCH- koderna inte är lika med noll, så skär segmentet inte rektangeln (eftersom det betyder att båda ändarna av segmentet är på samma sida av rektangeln). I andra fall väljer algoritmen slutet av segmentet (eller en av ändarna) som har en kod som inte är noll (det vill säga ligger utanför rektangeln), hittar den närmaste skärningspunkten för segmentet med en av linjerna som bildar rektangelns sidor och använder denna skärningspunkt som ett nytt ändsegment. Det förkortade segmentet passerar återigen genom algoritmen.
Implementeringen av algoritmen för 3D-modellen är identisk med 2D-implementeringen, förutom att istället för en fyrabitarskod används en sexbitarskod (ytterligare två bitars djup).