maanantai 24. elokuuta 2020

Viivoja kahdella eri algoritmilla.

Aamun innostus ei tarkoita yhtään mitään

Tänään innostuin (siihen se sitten jäikin) junassa lukemaan toisesta algoritmista, jolla viivaa voi piirtää. Semmonen kuin Xiaolin Wu’s algorithm. Sitä ajattelin kokeilla tänään. Kunhan saan ensin Bresenham’s algoritmin valmiiksi. Tänään on myös corewar projektin evaluointeja. Tulee (ja niin tulikin) taas normipäivä 12+ tuntia.

Tuli möhellettyä tänään tavallista enemmän. Corewar evaluoinnit meni ihan kivasti. Viivapiirto sen sijaan takkus. Tein virheitä koodiin (jos joku kysyy, en myönnä) ja niiden metsästäminen otti aikansa. Lopulta sain Bresenham’s algoritmin valmiiksi. Kirjoitin Bresenham koodin wikipediassa olevan rakenteen mukaan. Jäi vielä vaivaamaan olisko sen saanut nopeammaksi. Alla olevassa videossa näkyy hitautta. Tein myös silleen että viivaa voi liikuttaa nuolinäppäinten avulla. Se toinen algoritmi jäi tulevaisuuteen. Koulukaveri vinkkas mulle koodinpätkän jossa oli toteutettu Bresenham’s algoritmi lyhyesti ja ytimekkäästi. Mun toteutuksessa käytetään integer lukuja ja tässä minkä sain tehdään laskutoimituksia float (double) luvuilla. Ajattelin että testaan kumpi on nopeampi toteutus. Alla kolme kuvaa tämän päivän tuloksista.






Ei kommentteja:

Lähetä kommentti