Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: Metapallot

Sivun loppuun

Tumpi [23.12.2004 14:54:23]

#

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);
?>

rndprogy [23.12.2004 19:52:44]

#

Ei mitään linkkiä ois mihinkään.

peki [24.12.2004 01:15:50]

#

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.

arcatan [24.12.2004 08:01:49]

#

Metapallot tunkevat jo korvsta ulos.

tejeez [24.12.2004 10:35:27]

#

Voisit kyllä tehdä tuon niin, että tuo i-looppi olisi sisimpänä. Ei tarvisi tuollaista isoa taulukkoa joka pikselille.

ruuvari [24.12.2004 15:21:41]

#

tämä on ihan turha.

peki [24.12.2004 15:42:11]

#

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. :)

ruuvari [29.12.2004 00:04:34]

#

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

peki [29.12.2004 11:32:50]

#

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.

hunajavohveli [29.12.2004 11:50:07]

#

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.

T.M. [29.12.2004 21:53:37]

#

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ää >_<

mankeli [30.12.2004 15:44:36]

#

Mitä järkeä käyttää numediapaskawebbisivujen generointiin tarkoitettua kieltä joidenkin grafiiggaefegtien generoimiseen?

peki [30.12.2004 22:31:41]

#

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.

miihkali [05.01.2005 03:03:14]

#

Hui!

Tunteet pinnassa ja motionia oussonissa.

Graphic [29.06.2005 02:20:59]

#

Tehkääs joku metapallot vielä html:lle, niin on ainakin kieliä kasassa =)

moptim [21.08.2006 18:36:21]

#

hyvän näkönen mutta NIIN SAA**NAN hidas...
EDIT: Graphic: joo joo, html on vaan kuvauskieli (mutta javascript onnistuisi varmasti :D)

moptim [01.05.2007 15:41:07]

#

Nyt LOPETATTE SEN RIITELYN! Tämä koodi saa olla täällä ja sillä hyvä. Kyllä näitä saa portata eri kielille.

Olli [12.10.2008 18:47:21]

#

Demo:
http://koti.mbnet.fi/ollins/muuta/testi/pallot.php

MIB [17.09.2009 14:31:43]

#

Mahtava :)


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta