Olis tarkotus tehdä sellanen dartstilasto systeemi joka piirtää dartstaulun ja jokaiseen sen osaan kirjottais montako prosenttia tikoista on siihen osunut.
Olisko teillä jotain ideoita miten tuollasta kannattais lähtee toteuttamaan?
Ja vielä kun saisi jokaisen taulun osan värjättyä prosenttejen mukaan. Eli värit feidaisi punaisesta vaikka vihreeseen prosenttejen mukaan.
Onko sinulla siis valmiina tietty tulosaineisto, jonka haluat esittää graafisesti? GD-kirjaston avulla pitäisi tosiaan onnistua melko helposti. Melkeinpä riittää, että piirrät joukon sisäkkäisiä ympyröitä ja tulostat luvut sopiviin kohtiin, esim. vaakasuorasti kunkin ympyrän alaosaan.
https://www.php.net/manual/en/function.
https://www.php.net/manual/en/function.
Jos taulun osat ovat yksivärisiä, voit piirtää ympyrät suurimmasta pienimpään tällä funktiolla:
https://www.php.net/manual/en/function.
Jos kuitenkin väriliu'un pitää olla tasainen myös osien sisällä, taulu olisi ehkä parasta värittää piste kerrallaan. Pisteen etäisyyden ympyrän keskipisteestä saa helposti Pythagoraan lauseella. Tämän perusteella pitää sitten laskea, kuinka suuri osa tikoista mahtuu tämän alueen sisälle ja missä kohtaa väriliukua ollaan.
https://www.php.net/manual/en/function.
https://www.php.net/manual/en/function.
Tämän oppaan olet varmaan jo lukenutkin:
https://www.ohjelmointiputka.net/oppaat/opas.
mulla on nytten yksi dartstaulun sektoreista piirrettynä. Mitenkä saisin jokaiseen tuollaiseen pieneen osaan laitettua radionapin?
Tuollaisia kuvia tulis kolme rinnakkain ja jokaiseen 15 radionappia.
<?php //lähetetään tunniste selaimelle header("Content-type: image/png"); //luodaan 200x100-pikselin kokoinen kuva $kuva=imagecreate(150,400); //määritetään taustaväri ja kaksi muuta väriä $valkonen=imagecolorallocate($kuva, 255, 255, 255); $musta=imagecolorallocate($kuva,0,0,0); $punanen=imagecolorallocate($kuva,255,0,0); $vihrea=imagecolorallocate($kuva,0,255,0); ImageFilledArc($kuva, 75,350, 670, 670, -99, -81, $punanen,IMG_ARC_PIE); ImageFilledArc($kuva, 75, 350, 630, 630, -99, -81, $musta,IMG_ARC_PIE); ImageFilledArc($kuva, 75, 350, 420,420, -99, -81, $punanen,IMG_ARC_PIE); ImageFilledArc($kuva, 75, 350, 380, 380, -99, -81, $musta,IMG_ARC_PIE); imageline($kuva,75,350,75,15,$valkonen); ImageArc($kuva, 75, 350, 525, 525, -99, -81, $valkonen); ImageArc($kuva, 75, 350, 225, 225, -99, -81, $valkonen); imagefilledellipse($kuva,75,350,70,70,$vihrea); imagefilledellipse($kuva,75,350,30,30,$punanen); //lähetetään kuva PNG-muodossa imagepng($kuva); //poistetaan kuva muistista imagedestroy($kuva); ?>
Sitten taas on tilastojen piirtämisessä vähän ongelmia. Ajattelin piirtää dartstaulun tollasista kaaren muotosista osista. Siihen ei taida olla mitään funktiota valmiina, vai? No ajattelin tehdä funktion itse, mutta en saa sitä toimimaan. Valittaa että koodissa on virhe.
<?php function pala($x,$y,$alku,$loppu) { ImageFilledArc($kuva, $x,$y, $loppu, $loppu, -99, -81, $punanen, IMG_ARC_PIE); ImageFilledArc($kuva, $x,$y, $alku, $alku, -99, -81, $valkonen, IMG_ARC_PIE); } ?>
Eli ideanan on että lasken jokaisen tuollaisen osan prosentit ja värjään jokaisen osan eri värillä määräytyen prosenttejen mukaan. Totta kai noihin asteisiin täytyy pistää joku muuttuja vielä, mutta kunhan ensin sais noin toimimaan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.