Ово је семинарски рад који сам радио у првој години из геометрије.
Задатак: Написати програм који проверава да ли је полигон који је корисник унео прост. Уколико полигон јесте прост, триангулисати га, и излистати списак троуглова. Програм је писан у програмском језику Ц. Преко СДЛ библиотеке је имплементиран графички интерфејс за улаз и излаз. У функцији за исцртавање линија је искоришћена већ готова имплементација оптимизованог Брезенхамовог алгоритма, а остатак кода је оригинално дело аутора.
Општи опис и концептуално решење: Тачке полигона се уносе кликом миша, или из датотеке, чије име се прослеђује као аргумент при позиву програма. Тачке полигона се складиште у једноструко повезаној листи. Двокликом миша се затвара полигон, а крај листе се везује за почетак, стварајући коло. Након уношења улазних података, позива се функција prost, која проверава да ли се неке несуседне странице полигона секу. Уколико је то случај, на екрану се исписује да полигон није прост, и програм завршава са радом. У случају да је полигон прост, приступа се триангулацији, позивом функције triangulacija. Функција triangulacija је главна функција, која рекурзивно триангулише полигон. Прво се проверава да ли полигон има три темена. Уколико има, већ је триангулисан, па се исписују темена троугла, и излази се из рекурзије. У супротном, позива се функција nadjiDijagonalu, која проналази једну унутрашњу дијагоналу полигона. Затим се листа тачака преповезује, како би сачинила коло које описује први подполигон, и за тај полигон се рекурзивно позива функција triangulacija. Врши се ново преповезивање, и рекурзивно се триангулише други потполигон. Уколико се полигон уноси из датотеке, врши се прилагођавање координата при исцртавању на екран, како полигон на екрану не би био превелик или премали. За ово се користе променљиве faktorX и faktorY.
За детаљнији опис рада функција функција консултујте документацију или сорс код.