Putkasta näyttää löytyvän ennestään metapallot (ei nämä kyllä palloja ole, mutta metapalloistahan täällä on puhuttu..?) Javalla, VB:llä sekä Assemblyllä toteutettuina - tässä PHP-versio.
Perustuu pitkälti pekin oppaaseen, käyttää GD-kirjastoa.
http://koti.mbnet.fi/tumpi/metapallot.php
<?php header ("Content-type: image/png"); //kuvan mitat $leveys = 640; $korkeus = 480; $kuva = imagecreate ($leveys, $korkeus); $savy = array (); $vari = array (array (), array ()); $pallot = array (array (), array ()); //pallojen määrä $palloja = rand (2, 7); //värit valmiiksi taulukkoon for ($i = 0; $i <= 255; $i++) { $savy[$i] = imagecolorallocate ($kuva, $i/3, 0, $i); } //arvotaan palloille niiden sijainti sekä säde for ($i = 0; $i < $palloja; $i++) { $pallot[$i]["x"] = rand (0, $leveys); $pallot[$i]["y"] = rand (0, $korkeus); $pallot[$i]["r"] = rand (1500, 5000); } //käydään jokainen kuvapiste läpi jokaisen pallon osalta for ($i = 0; $i < $palloja; $i++) { for ($x = 0; $x < $leveys; $x++) { for ($y = 0; $y < $korkeus; $y++) { $vari[$x][$y] += $pallot[$i]["r"] / ((($pallot[$i]["x"] - $x) * ($pallot[$i]["x"] - $x)) + (($pallot[$i]["y"] - $y) * ($pallot[$i]["y"] - $y))+1); //itse kaava palloille //piirretään viimeisen pallon kohdalla if ($i == $palloja-1) { if ($vari[$x][$y] > 1) $vari[$x][$y] = 1; imagesetpixel ($kuva, $x, $y, $savy[intval ($vari[$x][$y] * 255)]); } } } } imagepng ($kuva); imagedestroy ($kuva); ?>
Ei mitään linkkiä ois mihinkään.
Ihan kivan näköinen on. Yritin tuota koodia suoraan copy&pastettaa omalle palvelimelleni (php5 + apache2), eikä oikein toiminut.
Tuo sinun linkkisi kyllä toimii täysin. Ehkä väsyneenä tein jonkun virheen.
Metapallot tunkevat jo korvsta ulos.
Voisit kyllä tehdä tuon niin, että tuo i-looppi olisi sisimpänä. Ei tarvisi tuollaista isoa taulukkoa joka pikselille.
tämä on ihan turha.
Ruuvi kirjoitti:
tämä on ihan turha.
Voisitko perustella näkökantaasi?
Ehkä tuota ei nettisivujen etusivulla voi hitautensa vuoksi soveltaa. Kuvan luomisen perusasiat gd:n avulla käyvät kyllä selviksi, jos koodia viitsii ajatuksella lukea.
Jos koodin lukija on siirtynyt juuri php:stä c++:aan tai johonkin muuhun kieleen ja hän haluaa koodata grafiikkaa, tästäkin vinkistä on hänelle varmasti suurta hyötyä.
Ärsyttävää, kun jotkut ilmaisevat negatiivisen mielipiteensä ilman yhtäkään järkevää perustetta. Ei näin.
Edit: Niin ja hyvää joulua kaikille. :)
Peki kirjoitti:
VOISITKO PERUSTELLA NÖKÖLANTASI?
hei pitääkö ne samat metäpällit kirjottaa MILJOONALLA KIELELLÄ? EI, tiedät sen itsekin. joten, poistakaa tämä paska
Ruuvi, miksi ei? Haittaako hirveästi sinun elämääsi se, että sama vinkki on käännetty monelle kielelle? Mielestäni on lapsellista, että Putkan sisältöä rikkaammaksi kartuttavia hyviä vinkkejä haukutaan aivan turhaan tai naurettavin perustein.
Näin vältettiin myös se, että joku saattaisi ennen pitkää kysyä keskustelualueella assembler-, java- tai vb-version kääntämisestä php:lle.
Asia olisi tietenkin toisin, jos täällä olisi jo huomattavasti parempi toteutus metapalloista php-kielellä. Näin ei kuitenkaan ole.
Kunpa moderaattorit saisivat jo oikeudet poistaa kommentteja, ellei heillä niitä jo ole. Tämänkin vinkin alta voisi muutaman huoletta poistaa.
Tämä IRC-keskustelua muistuttava kommentointi alkaa varmasti häiritä myös muita vinkin lukijoita.
Ruuvi kirjoitti:
hei pitääkö ne samat metäpällit kirjottaa MILJOONALLA KIELELLÄ?
Ei todellakaan ole mikään pakko. Mutta sitä parempi tietysti, mitä useammalla. Ketä se muka haittaa (siis sinun lisäksesi)? Tällaiset järjettömät "Tämä on turha, en perustele"-kommentit lähtisivät kyllä heti, jos minä saisin päättää. Koodivinkin lähettäjällä olisi tosiaan hyvä olla mahdollisuus poistaa kommentteja halutessaan.
Ruuvi kirjoitti:
hei pitääkö ne samat metäpällit kirjottaa MILJOONALLA KIELELLÄ? EI, tiedät sen itsekin.
Kylläpäs pitää.
Joka kielessä on eri vahvuuksia, eikä niitä kaikki osaa aina hyödyntää, joten miksipä eri koodeja ei voisi kääntää joka saatanan kielelle?
Ruuvi on ite kakkapää >_<
Mitä järkeä käyttää numediapaskawebbisivujen generointiin tarkoitettua kieltä joidenkin grafiiggaefegtien generoimiseen?
mankeli kirjoitti:
Mitä järkeä käyttää numediapaskawebbisivujen generointiin tarkoitettua kieltä joidenkin grafiiggaefegtien generoimiseen?
Mitä järkeä on tehdä demosceneä tai mitään muutakaan grafiikkakoodaukseen liittyvää (ellei kyseessä ole peli)?
Ehkäpä on olemassa ihmisiä, jotka tykkäävät haastavista tehtävistä ja omien aivojensa vaivaamisesta, eivätkä vain hae valmista koodia oman laskimensa tai tekstiseikkailunsa toteutukseen.
Hui!
Tunteet pinnassa ja motionia oussonissa.
Tehkääs joku metapallot vielä html:lle, niin on ainakin kieliä kasassa =)
hyvän näkönen mutta NIIN SAA**NAN hidas...
EDIT: Graphic: joo joo, html on vaan kuvauskieli (mutta javascript onnistuisi varmasti :D)
Nyt LOPETATTE SEN RIITELYN! Tämä koodi saa olla täällä ja sillä hyvä. Kyllä näitä saa portata eri kielille.
Mahtava :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.