Kodutöö 1

Sama, mis Basic kodutöö 1. Vt. Basic materjalid 

Kuna FP 3.0 puhul on vaja kasutada arvutamisel ja kuvamisel graafikareziimis erinevaid muutujatüüpe, siis on vajalik arvutatud tulemuste teisendamine teise tüüpi. 

Arvutamisel on reeglina tulemused float (ujuvkomaga) tüüpi suurused, joonestamiseks peaksid nad olema aga SmallInt (väike täisarv) tüüpi suurused, siis üleminekuks ujuvkomaga arvudelt täisarvudele on vaja kasutada kas funktsiooni ceil (ümardab lähima täisarvuni) või floor (väljastab täisosa).

Näiteks: olgu vaja joonestada viisnurk (vt. joonis 1)

Tipupunktide koordinaatide leidmiseks on ilmselt üks lihtsaimad viise jagades 360 tippude arvuga, antud juhul oleks see 72 kraadi. Punktide A, B, C, D, E koordinaadid saab leida järgmise lihtsa põhimõtte järgi (vt. joonis 2)

Pildilt on näha, et punkt C paikneb viisnurga ümberringjoonel, nurk xOC on 306 kraadi (nurk loetakse alates x teljest vastupäeva), arvutustes kasutatav täiendnurk oleks siis 360 - 306 = 54 kraadi, C koordinaadid oleks siis: xC=cos54*rC ja yC= - sin54*rC

Kasutame funktsiooni sincos(nurk: float, siinus :float, koosiinus :float ), mis soovib sisendväärtust tüübist float ja väljastab väärtused muutujatele siinus ja koosiinus samuti float tüüpi suurustena. Punkti C jaoks võiks siis kirjutada: sincos(17*pi/20, siinus, koosiinus) või sincos(3*pi/20, siinus, koosiinus)

nüüd siis: xc=raadius*koosiinus ja yc=raadus*siinus, siin jäävad xc ja yc tüüpi float

Joonestamiseks peaks tegema teisendused: x5:SmallInt=ceil(xc) ja y5:SmallInt=ceil(yc) ja kasutama joonestmiseks näiteks LineTo(xc,yc) korraldust