— parhaat valokuvasi netissä!

REBOL-ohjelmointi kurssi ihan aloittelijoille

TuoMar sai ylipuhuttua. Aloitan REBOL-kielen ihan alkeiden kurssin. Blogni https://kuvaklubi.fi/records/165/kuvia-rebol-ohjelmoinnilla/ sisältö on monelle osoittaunut ehkä liian haastavaksi. Mutta sieltä teidän täytyy käydä lukemassa REBOL:in lataus ja asennus ohjeet. Niitä en tässä threadissa toista.

Tehdään ensin kolme "Hello World" -ohjelmaa. Yksinkertaisin on tämän näköinen:

rebol[]

print "Hello World"

halt

Tuo rebol[] vaaditaan jokaisen ohjelman alkuun, se on otsake. Älkää minulta kysykö miksi - eikö luulisi, että tiedoston .r pääte jo kertoo tulkille, että kysessä on REBOL-ohjelma?

print käsky avaa ns. konsolin, minne se kirjoittaa tuon lainausmerkeissä olevan tekstin "Hello World". Jos lainausmerkkejä ei olisi, niin ohjelma valittaisi, että se ei tunne muuuttujaa nimeltä Hello. Muuttuja on siis avainkäsite kaikissa ohjelmointikielissä. Se voi saada numeroarvoja, merkkijono arvoja jne. Mutta on tietysti tärkeää, että eri muuttujilla on eri nimet, muutenhan tulkki ei tietäisi, että mitä muuttujaa se kussakin tilanteessa käyttäisi. Älkää säikähtäkö tätä muuttujan selostusta. Sitä ei tässä ohjelmassa tarvita - tai jos haluatte, niin voitte kokeilla seuraavaa:

Asettatte muuttujan merkkijonono arvoksi "Hello World". Se tapahtuu näin (monissa kielissä muuttujan arvo asetetaan= merkillä, mutta REBOL:ssa se asetetaan kaksoispisteellä : ):

merkkijono: "Hello World"

Sitten suoritatte käskyn:

print merkkijono

print käskystä vielä, että se on REBOL-kielen sisäänrakennetu ns. funktio, mikä saa parametrikseen merkkijonon, mikä voi olla joko merkkijonomuuttuja tai lainausmerkeissä oleva teksti, kuten yllä esitettiin.

halt tarvitaan, jotta konsoli "jäisi päälle". Oletusarvoisesti se vain vilahtaisi nopeasti - niin nopeasti, että ei ehtisi edes näkemään sitä "Hello World" -tekstiä.

Tämä tältä erää. Ehkä huomenna esitän toisen tavan ja sitä seuraavana päivänä kolmannen tavan tuottaa "Hello World" teksti. Toivon, että en turhaa aloita yksin tätä kurssia, eli toivon jonkinlaista palautetta niiltä, jotka kurssia aikovat seurata. Voisitte vaikka ilmottautua, kirjoittamalla viestin "Hello World", niin näkisin, ketkä "kurssilla" ovat.

 

KIITOS! Nyt on oikea taso aloituksessa. Minäkin ymmärsin kaiken :-)

Jään innolla odottamaan seuraavaa viestiäsi.

 

Pieni korjaus print käskyn selostukseen: se osaa printata myös numeroita tai muuttujia, joiden arvoja ovat numerot - ei siis pelkkiä merkkijonoja.

Esim. print 3 toimii tai tällainen koodi:

ind: 10

print ind

 

Ja: joudun ikävästi kirjoittamaan tänne koodia rivin kahdella vaihdolla, muuten tämä viestieditori kirjoittaisi käskyt yhteen pötköön.

 

Ja vielä: Muuttujan asennuksessa täytyy olla blankko eli välilyönti kaksoispisteen jälkeen. Tämä johtuu syystä, mitä en nyt jaksa selittää.

 

Tämä editori ei ole kyllä koodin kirjoittamista varten. Yritin kirjoittaa näkyviin tag:in, jolla pääsee siirtymään seuraavalle riville, mutta ohjelma heitti sen pois. Siirsi kyllä seuraavalle riville.

 

Juu, sitten kun ohjelmista tulee vähänkin pidempiä, niin otan sen käytännön käyttöön mitä olen tähänkin asti käyttänyt, että laitan koodin kotisivulleni copy/pastattavaksi - tai voihan sen linkistä suoraa talletta koneelle "tallenna linkki"...- ja sitten, jotta koodista näkyisy myös väritys, niin esitän sen kuvana. Siis näin:

http://petke.info/rebol/hello.r

http://petke.info/rebol/hello.jpg

lesson number two

Kurssin toisessa osassa (mistä tuli näköjään pirun pitkä) esitän toisen tavan tuottaa "Hello World":n ja tällä kertaa ikkunaan (ei konsoliin) ja tällä kertaa tallennamme sen myöskin kuvana. Huomiseksi jää vielä ns. draw-dialect tapa teettää "Hello World" teksti. Se on kaikista tehokkain, sillä siinä pääsee itse määräämään mihin kohtaan ja kuinka suureen ikkunaan ja millä fontilla ja minkä kokoisella fontilla teksti tuotetaan. Lisäksi ns. draw-dialect mahdollistaa monipuolisen grafiikkakäskyjen käytön samanaikaisesti.

Mutta tämän päivän teemana on sana "layout". (opin itsekin tässä uutta - tuollaisen layout:inkin voi kätevästi tallentaa kuvaksi! :) Sehän tarkoittaa suomeksi suurinpiirtein esillepanoa, asettelua. Harmi vaan, että layout:ista määärää paljolti REBOL-kieli itse. Kaikkeen esillepanoon ei voi itse vaikuttaa. Jotta layout:n näkee niin sen edessä täytyy olla view käsky. Esim:

rebol[]

view layout [title "Hello World!"]

Tämä ei tarvitse halt käskyä loppuun, sillä tämä ei tulosta mitään konsoliin vaan avaa ikkunan. Koodi loppuu, kun suljette ikkunan oikeasta yläkulmasta ruksista.

Tuosta koodista tuolla http://www.rebol.com/docs/view-guide.html dokumentissa sanotaan, että se olisi yksinkertaisin tapa tuottaa "Hello Wold" teksti näytölle, mutta eiköhän tuo eilen esittämäni konsoliin tulostava print käsky ollut yksinkertaisempi? title on tuossa layout:n blockissa (block on tuo osa, mikä on [] sulkujen välissä) määre, mikä määrää sen tavan millä teksti esille pannaan layout:ssa. title tarkoittaa tietysti otsikkoa ja se taas tarkoittaa, että teksti kirjoitetaan ikkunaan melko isolla. Sen paikalla voisi olla myös text. Kokeilkaa mitä silloin tapahtuu.

block, siis [ ] sulut (ja se mitä niiden välissä on) on REBOL:ssa hyvin usein vastaantuleva rakenne. Jos palataaan eiliseen print käskyyn, niin tällainen koodi ei kaadu kylläkään virheeseen, mutta se ei osaa tulostaaa kuin muuttuja1:sen

rebol[]

muuttuja1: 1

muuttuja2: 2

print muuttuja1 muuttuja2

halt

muuttuja2 jää ikään kuin roikkumaan ilmaan. Minusta siitä voisi tulla virheilmoitus, mutta REBOL tulkki ei vain välitä siitä, sillä muuttuja2:lla on arvo. Jos sen paikalla lukisi oeksfdidsui, niin sitten REBOL-tulkki antaisi virheilmoituksen:

1

** Script Error: oeksfdidsui has no value

** Near: oeksfdidsui

halt

>

Mutta, siis, jos kirjoittaa näin:

print [muuttuja1 muuttuja2]

ts. panee blockiin nuo muuttujat, niin silloin print käsky osaa tulostaa molemmat ja panee numeroiden 1 ja 2 väliin siististi blanckon eli välilyönnin.

Se blockista. Joko te olette kokeilleet ekaa ohjelmaa?

Hyvä. Sitten voin yrittää selittää, kuinka näkymä talletetaan kuvaksi. Siitähän ei mielestäni ole paljoa iloa, jos grafiikkaa saadaan ruudulle ilman, että sitä voidaan tallettaa kuvaksi. Toki REBOL:ssa voidaan esille panna view:llä kaikenlaista nappia (jota painettaessa ajetaan jotain koodia), slideria (liukumavalitsinta), kuvaa jne, mutta täällä minusta on hyvä keskittyä kuvien tuottamiseen.

Näytän ensin koodin, jolla view voidaan tallettaa kuvaksi ja sitten alan selostamaan sitä:

rebol[]

lay: layout [

title "hello world"

]

image: to-image lay

save/png %kuva.png image

halt

Kuten huomaatte, layout:n edessä ei nyt ole view-käskyä vaan asetamme muuttujan lay arvoksi layout:n. Jos muistatte, niin muuttujan arvo asetetaan laittamalla muuttujan jälkeen kaksoispiste : ja sitten se mikä arvo muutttujalle annetaan (blancko väliin). Tähän asti olemme antaneet muuttujille vain merkkijono ja numero arvoja, mutta tällä kertaa annamme siis muuttujalle layoutin arvon.

image: to-image lay

...arvaatte varmaan mitä se tekee? Se muuttaa muuttujan lay arvon kuvaksi ja asettaa sen arvon muuttujalle image.

save/png %kuva.png image

save määreellä png tallettaa imagen (image oli se, mikä juuri tehtiin lay:stä) tiedostoksi kuva.png REBOL:ssa tiedoston tunnuksena on prosenttimerkki %. REBOL ei osaa tallettaa kuvia muissa muodoissa kuin .png muodoissa, on siis turha yrittää tallettaa save/jpg - ei toimi, virheilmoitus tulee. REBOL voi kyllä ladata .jpg kuvia

Välihuomautus: On ihan sama mikä muuttujan nimi on (kunhan ei ole kahta saman nimistä muuttujaa). lay:n sijasta muuttujan, mihin layout sijoitettiin olisi voinut olla vaikka hölkynkölkyn, mutta se helpottaa tietysti koodaamista, kun muuttujan nimi kertoo vähän mistä muuttujasta on kyse. Samoin muuttujan "image" sijasta olisi voinut käyttää muuttujan nimenä esimerkiksi "kuva".

halt käsky on ehkä vähän turha. Se turhaan avaa konsoli-ikkunan, jonka sitten joudutte sulkemaan. Mutta ajakaa koodi, jonka jälkeen teillä pitäisi olla kuva.png tiedosto siinä hakemistossa, missä koodin ajoitte.

Minä sanon nyt halt.

Kotiläksy

Voitte lukea tai silmäillä tuota dokumenttia layout:sta ja view:stä http://www.rebol.com/docs/view-guide.html

Siellä on mahottomasti kaikkea, mitä layouttiin, voidaan laittaa. Osaatte varmaan pian koodata sitten paremmin layoutteja kuin minä olen vaivautunut opettelemaan. Minä olen keskittynyt draw-dialectiin - tosin sekin on sellainen, että se on layout:n määre. Siis vasta layout asettaa näkyville sen mitä draw dialectiin laitetaan...Huomenna näette. Hyvää yötä.

lesson number two

Täsmällistä, kaikki yksityiskohdat huomioon ottavaa ohjeistusta. Pidän.

lesson number two

Täsmällistä, kaikki yksityiskohdat huomioon ottavaa ohjeistusta.

Ehkä sellainen kommentti olisi ollut vielä paikallaan, että "Kuinka saatte layout:in näkyviin, vaikka sen edessä ei ollut view käskyä?". Vastaus olisi tietysti ollut: "view lay", koska layout asetettiin muuttujaan nimeltä "lay".

lesson number two

Välihuomautus: On ihan sama mikä muuttujan nimi on (kunhan ei ole kahta saman nimistä muuttujaa).

Toki muuttujan nimenä ei saa olla REBOL-kielen ns. varatut sanat kuten print, layout, halt jne...

No, tämän olisi voinut vähän päätellä siitä, että kahta samannimistä "muuttujaa" ei saa olla.

Oppitunti nro 3

En nyt kolmannella oppitunnilla vielä näytäkään tapaa, millä draw-dialect:lla kirjoitetaan ruudulle "Hello World", vaan piirrämme kuvatiedostoon viivoja. Kuvatiedosto, minkä piirrämme on tämän viestin liitteenä.

Ohjelma kommenteineen on vähän sotkuisen näköinen: http://www.petke.info/rebol/viivat.jpg

Mutta onneksi Crimson Editor värittää kommentit vihreäksi. Kuten kai näette, niin kommentit alkavat REOL-kielessä puolipisteellä ;

Tässä ohjelma ilman kommentteja http://www.petke.info/rebol/viivoja3.r

jos haluatte sitä silmäillä Crimson Editorissa samalla kun luette "ohjelman kommentti manuaalia". Itse inhoan lukea ohjelmakoodeja ilman syntaksi värityksiä.

Kotitehtäväksi annan: Kuinka kuvatiedostosta saadaaan myöskin yläosa - se osa mikä nyt on valkoinen - täytetty tuollaisilla hyvin lähekkäsillä viivoilla? Siihen ei tarvita kuin yksi käskyrivi. Ei siis tarvitse kirjoittaa uutta for-luuppia eli silmukkaa, vaan heti nykyisen line käskyn perään kirjoitatte (tai copy/pastaatte pohjaksi) toisen line käskyrivin. Älkää palauttako kotitehtävää huomenna ennenkuin olette testaamalla vakuuttuneet sen toimimisesta. Ne oppilaat, jotka palauttavat oikean ratkaisun saavat kymmenen pistettä ja papukaija merkin.

 

PS: ehkä auttaa ymmärtämään tuota "compose" käskyä, jos sen senkun jättää pois ja ajaa koodin. Probe näyttää muodostetun plot-blockin sisällön ja tajuatte, miksi sen appendin lisäksi tarvitaan jotain muuta. compose eräällä tavalla "evaluate" - laskee arvon tms.

compose ja reduce ovat molemmat vähän sama asia. Enpä oikein osaa selostaa, kun en tiedä, että milloin tarvitaan toista ja milloin sen sijaan toista. Olen vain apinoinut koodin pätkiä.

Huomasin, että line käskyssä alkupisteen 0x0 ympärillä ei tarvita sulkuja, mutta koska loppupiste ei ole "literaalinen vakio" - niin sen ympärillä on oltava sulut. Sulut toimivat tässäkin tapauksessa vähän kuin reduce ja compoose, mutta eihän niitä voida sotkea grafiikkakäskyjen joukkoon!

Syy, miksi haluan käyttää draw dialectia lauyoutin tekemiseen on juuri se, että tässä voidaan käyttää muuttujia grafiikkakäskyjen yhteydessä. Puhtaaseen layouttiin voidaan kyllä piirtää viivoja tms., mutta vain literaalisilla vakio koordinaattiarvoilla. Siis esim "line 0x0 100x200".

Ne, jotka osaavat englantia paremmin kuin minä ja joilla on enemmän kärsivällisyyttä kuin minulla voivat REBOL:n dokumenteista lukea lisää aiheista. Esim. tuolta: http://www.rebol.com/docs/draw.html

Huoh!

Ei taida onnistua tuo antamasi tehtävä. Olen kokeillut vaikka mitä. Viimeksi sain ihan nätin kirjeenkuoren :) Harmi vain, että se kolmio oli väärässä paikassa.

Muuten, miksi tuo (0,0) eli origo on tuolla suorakaiteen vasemmassa yläkulmassa. Jos ajatellaan, että tuo (0,0) on suorakulmaisen koordinaatiston origo, niin silloin y-arvojen tässä tehtävässä pitäisi olla negatiivisia.

Huoh!

miksi tuo (0,0) eli origo on tuolla suorakaiteen vasemmassa yläkulmassa.

Tekisi mieli vastata, että se nyt vain on! :) Siis kuvan leveysarvot käyvät 0:sta kuvan leveyteen ja "y-akseli" käy 0:sta kuvan korkeuteen, paitsi että "alaspäin" eikä kuten matemaattisessa koordinaatistossa, kun y kasvaa, niin mennään ylöspäin.

Hyvä on, annan sulle ratkaisun tehtävään. Lisää line käsky:

line (as-pair maxx maxy) (as-pair x 0)

Se piirtää kuvan oikeasta alakulmasta (alkupiste) viivan "yläriville" (y:n arvo on nolla) ja koska ollaan luupissa, missä x käy läpi arvot 0:sta maxx:ään 5:n välein, niin tulee niitä lähekkäisiä viivoja. Nyt tarvitaan sekä alku- että loppupisteeseen as-pair funktio, sillä vaikka oikea alakulma on vakio, niin emmehän me voi kirjoittaa maxxxmaxy (REBOL:ssa x on xkoordinaatan ja ykoordinaatin väliin tuleva operaattori tms. kuten oli 0x0:ssa.

Huoh!

Muuten, miksi tuo (0,0) eli origo on tuolla suorakaiteen vasemmassa yläkulmassa. Jos ajatellaan, että tuo (0,0) on suorakulmaisen koordinaatiston origo, niin silloin y-arvojen tässä tehtävässä pitäisi olla negatiivisia.

Tietokoneessa on ns. grafiikkamuistialue. Siellä olevien muistipaikkojen arvot määräävät pixeleiden väriarvoja. Kun origo on vasemmassa yläkulmassa, niin sen muistipakkaa vastaa eka muistipaikka grafiikkamuistissa. Olkoon kuvan leveys maxx vaikka 2000 ja ja korkeus maxy vaikka 1000 ja pixelin koordinaatta vaikka 100x200, sitten voi kääntäjä tai tulkki laskea, että ahaa! se on muistipakka: 100 + 200 * maxx. Kutakuinkin näin.

Huoh!

miksi tuo (0,0) eli origo on tuolla suorakaiteen vasemmassa yläkulmassa.> > Tekisi mieli vastata, että se nyt vain on! :) Siis kuvan leveysarvot käyvät 0:sta kuvan leveyteen ja "y-akseli" käy 0:sta kuvan korkeuteen, paitsi että "alaspäin" eikä kuten matemaattisessa koordinaatistossa, kun y kasvaa, niin mennään ylöspäin.> > Hyvä on, annan sulle ratkaisun tehtävään. Lisää line käsky: line (as-pair maxx maxy) (as-pair x 0) Se piirtää kuvan oikeasta alakulmasta (alkupiste) viivan "yläriville" (y:n arvo on nolla) ja koska ollaan luupissa, missä x käy läpi arvot 0:sta maxx:ään 5:n välein, niin tulee niitä lähekkäisiä viivoja. Nyt tarvitaan sekä alku- että loppupisteeseen as-pair funktio, sillä vaikka oikea alakulma on vakio, niin emmehän me voi kirjoittaa maxxxmaxy (REBOL:ssa x on xkoordinaatan ja ykoordinaatin väliin tuleva operaattori tms. kuten oli 0x0:ssa.

En ymmärtänyt, että maxx :n ja maxy :n eteen pitää kirjoittaa tuo as-pair. Muistan, että yritin noita kirjoittaa muotoon:
((maxx) (maxy))
ja ihmettelin, kun ei mikään kelpaa.

Huoh!

En ymmärtänyt, että maxx :n ja maxy :n eteen pitää kirjoittaa tuo as-pair. Muistan, että yritin noita kirjoittaa muotoon:
> ((maxx) (maxy))
> ja ihmettelin, kun ei mikään kelpaa.

Yritys hyvä kymmenen! Saat sen kymmenen pistettä ja papukaija merkin.

Oppitunti numero 4

Tänään kirjoitamme "Hello World" tosi isolla itse määritellyllä fontilla ikkunaan. Ensin tavallisella:

http://www.petke.info/rebol/font1.r

http://www.petke.info/rebol/font1.jpg

Sitten boldatulla ja italicilla: (tämä vain siksi, että näette kuinka fonttiin voidaan laittaa "style" määre)

http://www.petke.info/rebol/font2.r

http://www.petke.info/rebol/font2.jpg

Sitten kirjoitamme ruudun täyteen pienemmällä fontilla "hello World" tekstejä. Periaatteessa noissa aikasemmissakin koodeissa voisi tekstin paikan määrittää laittamalla tekstin eteen koordinaatit:

text 200x300 "Hello World"

Mutta ei ketään jaksa kirjoittaa manualiisesti useita kertoja text määreitä layouttiin ja niille koordinaatteja, siksi teemme tämän tempun draw-dialectin kautta. draw dialectin huippuominaisuus on juuri se, että siinä noita grafiikka käskyjä voidaan ohjelmallisesti "kerätä" määräämällä esimerksi tässä tapauksessa tekstin tulostuspaikan kahdessa sisäkkäisessä luupissa muuttujien arvojen avulla (tässä tapauksessa x- ja y-koordinaatti). Ohjelma:

http://www.petke.info/rebol/font3.r

http://www.petke.info/rebol/font3.jpg

Sitten vielä arvomme noiden pienempien tekstien värin sattuman varaisesti. REBOL:ssa on paljon varattuja sanoja eri väreille kuten red. blue, green jne...niitä löytyy lisää tuolta: http://www.rebol.com/docs/draw.html#section-15 , mutta me nyt arvomme sattumanvaraisesti värin red, green ja blue arvot.

http://www.petke.info/rebol/font4.jpg

http://www.petke.info/rebol/font4.r

Koodeissa on teille ainakin yksi uusi outo sana "face" fontin määrittelyn yhteydessä. Joka haluaa siitä tietää enempi, niin voi lukea fucking manuals:

http://www.rebol.com/docs/view-face-hier.html

http://www.rebol.com/docs/view-face-funcs.html

http://www.rebol.com/docs/view-face-content.html

Kotitehtäväksi annan: Yrittäkää selvittää alustavasti mitä REBOL:ssa tarkoittaa käsite "face" ja selittäkää se huomennaa opettajallenne, joka ei oikein ymmärrä sitä :) Opettajanne on tottunut vaan apinoimaan ja kopioimaan from fucking manuals fontin määrittelyn.

Siis minä en muistaakseni ole tarvinnut face juttuja koodeissani missään muualla kuin fontin määrittelyssä, siksi en ole käsitettä "face" itsellenni selvittänyt. Aavistelisin sen jotenkin liittyvän siihen, että sen kautta voidaan määrittää layout:n esillepanoa?

Jos teille jokin jäi epäselväksi niin kysykää :) Noissa koodeissa ei nyt tällä kertaa ole mitään kommentteeja.

 

Teki mieli tehdä vielä koodi, missä arvotaan sattumanvaraisesti noiden värikkäiden tekstien paikat:

http://www.petke.info/rebol/font5.r

http://www.petke.info/rebol/font5.jpg

Siitä jäi alusta pois taas tämä satunnaisluku generaattorin alustus koneen kellossta:

random/seed now/precise

Nyt se tuottaa aina samanlaisen kuvan, mutta ei tuon alustuksen jälkeen.

 

Oli typerää jättää tuohon viimeiseen ohjelmaan, missä tulostettiin sattuman varaisiin paikkoihin "Hello World" teksti, noita x ja y muuttujia...siis kaksi sisäkkäistä silmukkaa. Tässä koodit, jotka tulostavat 1000 kpl "Hello World" tekstejä:

http://www.petke.info/rebol/font6.jpg

http://www.petke.info/rebol/font6.r

 

Oli typerää jättää tuohon viimeiseen ohjelmaan, missä tulostettiin sattuman varaisiin paikkoihin "Hello World" teksti, noita x ja y muuttujia...siis kaksi sisäkkäistä silmukkaa. Tässä koodit, jotka tulostavat 1000 kpl "Hello World" tekstejä:> > > http://www.petke.info/rebol/font6.jpg> > http://www.petke.info/rebol/font6.r

En ole vielä ehtinyt tutustua tuohon pitkään lommenttiisi "Oppitunti numero 4", mutta tuli mieleeni, että miten ohjelmaa pitäisi muuttaa, jotta tuon tekstin "Hello World" paikalle saisi vaikka kolme eriväristä kukkasta? Olisi kivannäköistä, kun koko ruutu olisi täynnä kukkasia:-)

Myös joku keltainen hymyilevä naamankuva ruudulle monistettuna olisi hieno.

 

seuraavalla kerralla voimme piirtää vaikka yksinkertaisen spiraalin.

Tai aloitetaan itse tehdystä ympyrä koodista. Ei siis REBOL:n circle käskyllä tehdystä vaan sellaisesta, missä sinin ja cosinin avulla piirretään ympyrää, sitten kun toisen koordinaatan kertoo esimerkiski 4:llä niin samoja muotoja kuin noissa kukkasissa...Mutta samallahan sitä voisi piirtää spiraaleja - antaa vaan säteen kasvaa, tai jos säde on aluksi esimerkiksi maxx, niin pienentää sitä, niin ympyrän sijasta syntyy spiraali.

 

Mitä ihmettä! jäi tämä viesti väloistä pois! Katosi jonnekin bittiavaruuteen:

ZZZzzzzZZZZZZZ...Siinä sulle kukkasia tuottava koodi:

http://www.petke.info/rebol/kukkasia3.r

http://www.petke.info/rebol/malta.jpg

EN ALA SELITTÄMÄÄN!

Mutta jos tuon tapaiset koodit kiinnostavat, niin seuraavalla kerralla voimme piirtää yksinkertaisen spiraalin. Jos keerran oot matemaattisluonnontieteellisessä opiskellut (samma här) niin sulle on cosinit ja sinit tuttuja.

 

Sitten taas kun copy/pastasin tuo yo. viestin editoristani, niiiin siellä editorissa ei ollutkaan viestin loppuosaa, mikä meni jotenkin näin:

Ei maksa vaivaa, alkaa asettelemaan neliön muotoisia hymykuvia screenille, kun ne menevät ikävästi toistensa päälle. Ne hymykuvat olisi aikaan saatava omilla piirtokäskyillä ja siinäkin tulisi pahoja ongelmia...Tietty, jos käyttäisi apunaan .gif kuvien taustan läpinäkyvyyttä, niin homma voisi onnistua - en tiedä.

 

Minulla oli kirjoitettuna vastaus siihen ensiksi tänne kirjoittamaasi kommenttiin, mutta kun tulin tänne, niin sitä ei enää ollutkaan.

Oliko sinulla tuollainen kukkajuttu jo valmiina, sillä en kyllä usko, että olisit tuossa ajassa tuollaista ohjelmaa ehtinyt saada kasaan.

Kaunis kuva kukkasista. Oletko muuten huomannut, että olet päässyt TOP-listan kärkeen eli olet A-tasolla. Se tarkoittaa sitä, että voit tällä viikolla joka päivä ladata 2 kuvaa eli yhteensä 14 kpl. Yhden olet jo tänään ladannut, mutta toisen kuvan voit ladata jo vaikka heti. Voit vaikka ladata nuo kukkasesi kaikkien iloksi.

Minulla oli FM- tutkinnossa pääaineena fysikaalinen kemia, mutta sivuaineina olivat fysiikka, matematiikka ja tähtitiede. Myöhemmin suorittelin ne kasvatustieteet ja tietojenkäsittelyopin (millä nimellä se nyt mahtoi olla). En minä muista opiskeluistani enää mitään. Kaikki turha on jo vuosien varrella häipynyt pääkopasta, mutta kyllä nuo matemaattiset kuviot, spiraalit, sinit ja cosinit, kiinnostavat ohjelmiin ympättyinä (jos ovat riittävän yksinkertaisia):)

 

Juu, mulla oli koodi valmiina. Tein kukkakuvan mielenterveysyhditys Helmin näyttelyyni, se oli eka "näyttelyni". Ens. Vappuaattona on toka ja viime lokakuussa oli se kirjaston näyttely.

http://petke.info/helminayttely/

Mulla ei ole muuta tutkintoa kuin yo. Eli jätin kesken tietojenkäsittelytieteen opinnot HY:ssa.

Minäpä lataan toisen kuvan vaikka melkein heti, mutta en tuota kukka kuvaa.

EDIT: En voi ladata kuin vasta 9 tunnin kuluttua.

 

Juu, mulla oli koodi valmiina. Tein kukkakuvan mielenterveysyhditys Helmin näyttelyyni, se oli eka "näyttelyni". Ens. Vappuaattona on toka ja viime lokakuussa oli se kirjaston näyttely.> > http://petke.info/helminayttely/> > Mulla ei ole muuta tutkintoa kuin yo. Eli jätin kesken tietojenkäsittelytieteen opinnot HY:ssa.> > Minäpä lataan toisen kuvan vaikka melkein heti, mutta en tuota kukka kuvaa.> > EDIT: En voi ladata kuin vasta 9 tunnin kuluttua.

Hienoa, että edes jossakin esittelet upeita taidekuviasi. Onko niitä vielä missään ulkomaisilla sivustoilla? Kannattaisi viedä, jotta saisit kuvillesi laajempaa näkyvyyttä. Eikö Flickr olisi oivallinen paikka kuvien esittelyyn? Sieltä voisi löytyä muitakin algoritmisen kuvataiteen edustajia.

 

EDIT: En voi ladata kuin vasta 9 tunnin kuluttua.

Johtuu sitten varmaan siitä, että päivitykset tapahtuivat aamuyöllä tai sitten siitä, että et ole vielä varsinainen jäsen.

 

Onko niitä vielä missään ulkomaisilla sivustoilla?

Pinterestissä muistaakseni on muutamia. Mitäpä niitä sinne laittamaan - hukkuvat kymmenien tuhansien kuvien joukkoon. Mulle riittää mun kotisivuni. Siellä onkin nyt vuoden aikana käynnyt 1415 kävijää - jos kävijälaskuri laskee eri ip osoiteet eikä vain latauksia - ei se ainkaan kasva, kun itse latailen sivua.

Kannattaisi viedä, jotta saisit kuvillesi laajempaa näkyvyyttä.

Plaah. Siellähän ne ovat mun kotisivuilla ja pysyvät siellä kuolemanai jälkeen - ainiin, jonkun olisi maksettava serverin mksut - ei ne sinne ikusiksi ajoiksi jääkään.

Eikö Flickr olisi oivallinen paikka kuvien esittelyyn? Sieltä voisi löytyä muitakin algoritmisen kuvataiteen edustajia.

En tiedä. Voi olla - aha, siellä on jo 2 miljoonaa grouppia mitä lie. Sinne ne mun kuvat hukkuisivat...Pysyn nyt täällä, täälähän mä olen saanut hyvän vastaanoton. tosin olen pannut yhden merkille, vain yhden, joka ei ole kertaakaan pitänyt mun kuvista ja kysyi melkein heti alussa, että "Onko nämä valokuvausta!!?"

 

PS: mainostin tätä "kurssia" tänään kotisivuillani http://www.petke.info/ , että ei kannata ehkä täällä pölistä kaikkea muuta kuin REBOL:iin liittyvää?

 

PS: mainostin tätä "kurssia" tänään kotisivuillani http://www.petke.info/ , että ei kannata ehkä täällä pölistä kaikkea muuta kuin REBOL:iin liittyvää?

Etkö voi sinne kotisivuillesi lisätä vain nuo kirjoittamasi oppitunnit?

EN! En jaksa. Ei huvita.

...

 

Olenpas muuten tainnut unohtaa kertoa sellaisen oleellisen asiaan, kuin että kaikissa laskuoperaatioissa ts. yhteen-, vähennys-, kerto- ja jakolaskussa operaattoreiden väliin ttulee blnackko. Siis a + b ja ei näin a+b

smile

Myös joku keltainen hymyilevä naamankuva ruudulle monistettuna olisi hieno.

Smile päitä :)

http://www.petke.info/rebol/smilecode.jpg

http://www.petke.info/rebol/smile.r

smile

Myös joku keltainen hymyilevä naamankuva ruudulle monistettuna olisi hieno.> > > Smile päitä :)> > http://www.petke.info/rebol/smilecode.jpg> > http://www.petke.info/rebol/smile.r

Jopas on oikea ilopillerikuva:)

arc (as-pair x y) (as-pair (0.7 * säde) (0.7 * säde)) 0 180 ; suu

Kaaren alkupiste, kaaren loppupiste, kaltevuuskulma x-akselin suhteen ja kaaren pituus asteissa?

Näinkö?

 

arc (as-pair x y) (as-pair (0.7 * säde) (0.7 * säde)) 0 180 ; suu

(as-pair x y) keskipiste - ei alkupiste, karellahan on keskipiste, arc piirtää joko ellipsin tai ympyrän kaaren

(as-pair (0.7 * säde) (0.7 * säde)) ; Koska toosiaan kyseesä voi olla myös ellipsi, niin säteen sijasta tarvitaan 2 "sädettä" ja ne ovat nämä. ts. tässä on kyse ympyrästä, koska molemmat ovat samoja

0 ja 180, joo kaaren pituus asteissa eli 180 astetta kehää pitkin.

arc:ia käsitellään tuolla: http://www.rebol.com/r3/docs/view/draw-curves.html#section-4 heti ekana

 

Ellipsin iso ja pieni akseli. Hämärästi muistan. Kyllä on aika vaikeata saada näistä komennoista jotain tolkkua. Nuo googlella tarkastelemani arc-esimerkit olivat huonoja, koska niissä ei esitetä täsmällisesti, mitä suureita arc komentoon kuuluu. Ehkä tuo linkkisi on parempi.

Tällaisen sentään löysin ja tällaista esitystapaa tuossa edellä tarkoitin:

ARC center [pair!] radius [pair!] angle-begin [decimal!] angle-length [decimal!] closed [word!]

 

Mulla toi dokkari manuaali linkki tulee Googlella heti tokana