Featured Post

Helppo ja nopea kolmionpiirtorutiini.

Vau. Kehitys kehittynyt ja oppi opittu. public static void SolidTriangle(Point a, Point b, Point c, Color color) {             Point[] po...

Thursday, September 11, 2014

Tilannepäivitys/Diy Diy.

Eli roolipelikuume meni enimmäkseen ohi. Olen saanut myös tietokoneen takaisin toimintaan, SSD-vauhtiin jopa. Se mikä on nyt ollut päällä on ollut Do-It-Yourself.

Ensinnäkin savirakentaminen. Tämä lähti ihan vain tietystä Grand Designs-sarjan jakson näkemisestä.

Toinen on kengät. Kengät ovat yksinkertaiset, pienikokoiset, kalliit ostaa ja vaikea löytää oikeita kokoja. Prosessia voi tarkastella tuubissa taas.
Ensimmäinen asia mikä minulle tuli mieleen oli, "Ei näytä kovin monimutkaiselta", ja toinen oli "Kai tuon voi tehdä helpomminkin."

Varmastihan se on kehittyvä ala, ja kun ottaa huomioon että omat Puman lenkkarit ovat lähestulkoon sataprosenttisesti muovia eri lajikkeina, varmaan tulostettavuuskin lähenee. Muttasiis, en täysikokosena ole koskaan tainnut kaupasta löytää just oikeankokoista kenkää. Suomi-jalkine pääsee varmaan lähimmäksi.

Sitten osana tätä on ollut yleisesti sisustaminen, kun mielessä on ollut mahdollinen muutto maaseudulle, sekä pahvi. Pahvi on periaatteessa puuta, tahi siis kevyt puupohjainen tuote. Selkeästikin siitä voi tehdä kaikenlaista, sen voi pinnoittaa vedenpitäväksi ja vaikka mitä.

Joten, nyt kun olen vielä täällä maalla, missä on työkaluja ja tilaa ja rauhaa, on hyvä prototypoida. Kaikista tuotteista voi tulla jotain minkä voi tarvittaessa laittaa pesään tai roskiin.


Wednesday, July 02, 2014

Kokeellinen Peli

Tällaiset ominaisuudet:

Kaikilla Pelaajilla on seuraavat ominaisuudet:

Kestopisteet, jotka vähenevät vaaratilanteissa,
Käytännön pätevyys, jolla tehdään asioita,
Kokemuspisteet, joita saa kun peli etenee, ja joita vaihdetaan,
Kehityspisteisiin, joita voi vaihtaa Kestopisteisiin tai Käytännön pätevyyteen. Näitä on aluksi kuusi.

Hahmolomake on lopussa.

Pelaaja päättää mikä kohta osoittaa mitäkin ominaisuutta.
Tätä järjestystä ei tarvitse kertoa toisille pelaajille, tai pelin vetäjälle. Pelin vetäjä voi halutessaan pyytää toki hahmolapun nähtäväksi.

Pelaaja voi ilmoittaa omaavansa käytännön pätevyyden johonkin asiaan, jollon hän vähentää yhden kp:n, ja merkitsee käytetyn pätevyyden lappuun. tällöin pelaajalla on etulyöntiasema kyseisessä asiassa, paitsi jos haasteen vastapuolelta löytyy sama tai vastaava käytännön pätevyys.

Kun pelin vetäjä ilmoittaa että tilanne on päällä, ei saa käyttää kehityspisteitä.

pelinjohtaja voi ilmoittaa testistä, johon osallistumisesta, voittamisesta, häviämisestä, ja osallistumatta jättämisestä voi olla omat seurauksensa.

Pelin testit tehdään millä hyvänsä 50-50 arvontamenetelmällä, ja etulyöntiasema voittaa aina.
Kun pelaaja epäonnistuu haasteessa, hän menettää yhden kestopisteen. Jos hahmolla ei ole yhtään kestopistettä jäljellä, hahmo on pois pelistä, ainakin toistaiseksi.

Kun pelin vetäjä ilmoittaa että tilanne on ohi, saa taas käyttää kehityspisteitä, ja tilanteeseen osallistuneet saavat yhden kokemuspisteen.

Kun on saanut kuusi kokemuspistettä, kokemuspisteet nollataan ja pelaaja saa yhden kehityspisteen. 


Jos pelaaja jää kiinni huijaamisesta, kokemuspisteet ja käytännön pätevyydet nollataan, ja kestopisteitä jää jäljelle vain yksi.


Nimi: 

Kuvaus:

Kp: 

Kp:

Kp:

Kp:

Käytetyt pätevyydet:



Monday, June 30, 2014

Heti edellisen postin jatkoksi...

Ensinnäkään BESM ei minusta ole enään niin clunky kuin mitä muistelin, eikä Tri-stat dX niin sekava. Jään kaipaamaan vain muutamaa juttua niihin - pelityylimotivaattoreita, sekä esimerkkejä siitä mitä eri tasoiset onnistumiset tarkoittavat.

Osaltaan kyse on ihan siitä, että homebrewin käyttö on minusta nykyään paljon luontevampaa, kuin aikaisemmin, kun vielä halusin tarkan säännön joka tilanteesen.

BESMin taistelu toimii, mutta se ehdottomasti vaatii sivulta 156 alkavien laajennettujen taistelusääntöjen käyttöä. Varsinki Trick Shotit ja tähdätty isku heikkoon paikkaan on tärkeä - ja menee asehyökkäyksillä todella nopeasti tappavaksi!

Taistelut todella korkean tason sotureiden välillä joko saattavat kestää päiviä, tai ovat rakettihippaa. Aivan maksimihahmoillakin voi pakottaa puolustavan osapuolen heittämään 8 tai alle, jo ennen house ruleja (kuten trick shotin laajentaminen.)

Toisekseen, Solar Systemin granulariteetti ei vaikuta välttämättä niin pahalta.

Tietty, jos hahmolla on taito Tappelus(p), se ratkaisee tilanteen kovin yksioikoisesti... mutta entä jos hahmolla on taidot potkunyrkkeily, paini, torjunta, aikeiden arviointi... Taistelusta voi saada monivaiheisen ja syvällisen kohtauksen. Kysymys on samasta asiasta kuin mikä on thaumaturgisten rituaalien taustalla Dresden Files RPG:ssä: Mikä on Taistelun Tarina?


Thursday, June 26, 2014

Intuitio ja hahmonkehitys.

Solarista löytyy Dramatic Key framework ja Motivation Key framework.

Mietin tässä niiden käyttöä vähän toisella tavalla. Haluan käyttää avaimia (ja muita motivaattoreita) elementteinä jotka ohjaavat hahmon pelityyliä.
Tavoitteen avain: (motivaatio). Käytän tätä tosi paljon.
Hahmolla on jokin tavoite johon hän pyrkii.
esim.
  • kostan isäni surman
  • valmistun yliopistosta (köh köh) 
1 xp: Asia on puheenaiheena, tai sitä käsitellään
3 xp: Hahmo etenee tavoittetta kohti
buyoff: Hahmo saavuttaa tavoitteen

Omassa custom pelissäni voi ostaa yhden tavoitteen avaimen yhdellä kehityspisteellä. Onneksipa buyoffista saa 10 xp, joka on kahden kehityspisteen arvoinen saalis.

Toisena on, mm, kutsutaan vaikka nimellä: 

"[ammatin] Taidon avain".
Hahmo vain tykkää käyttäytyä jollain tavalla. jos paras työkalu on Vasara, haluaa teeskennellä että ongelmat ovat nauloja.

Näistä esimerkkejä voisivat olla vaikka, 
Maagi, Soturi, Kuljettaja, Hakkeri, Pappi, Lukkari, Talonpoika...
Myös, mm. Sankari, 

1xp: Ammatti on relevantti kohtauksessa. Selkkauksessa? Mitäs terminologiaa Menneisyyden Varjot käytti?
2xp: Ammattiin kuuluvia taitoja käytetään ensimmäisen kerran selkkauksessa.
5xp: Selkkaus tapahtui vain koska hahmolla oli ammatti.
Buyoff: Hahmo lopettaa ammatin harjoittamisen. 

Tälle avaimelle ei välttämättä tule koskaan buyoffia; Tämä on okei. 
Solar Systemin efektit ovat todella joustava systeemi. 

Esimerkki: 
Agatha heittää hullu tiede -  heiton, ja saat tulokseksi 5. 
Voit käyttää asiaan liittyvää voimavaraa (järki?) asettaaksesi efektin voimakkuuden (+1 - +3), jolloin se on varuste. Koska tulos on viisi, laite voisi olla esim. 3x +1, 1x +2, tai 1x +3, 1x +2 esine.
Toisaalta, kyseessä voi olla kranaatti-tyyppinen kertakäyttöinen efekti voimalla 5, tai monikäyttöinen efekti, esim. 3 käyttöä voimalla 2. (Voimakenttä, heitä vähintään 2 tehdäksesi hahmolle vahinkoa). 

Täytyy kyllä sanoa että miellän asiat aika pitkälti Faten Block/Maneuver etc. toimintamallilla. 

Kirjoitan varmaan tässä vielä englanniksi omista BESM - ajatuksista. 

Tuesday, June 17, 2014

Roolipelikuume

Sepä. En ole päässyt pelaamaan tai vetämään peliä nyt taas vuoteen, tai varmaan kahteen - kolmeen, jos puhutaan pidemmästä kuin ihan parista pelikerrasta.

Olen tehnyt jonkin verran järjestelmäanalyysiä, setissä Exalted, Fate, Solar System ja BESM 2e Revised.

BESM on aika kauhea nykystandardein, mutta se - ja Tri-Stat - antavat esimerkkejä skaalautuville kykyportaille.

Exaltedin settinki ja asenne on hieno, ja Charmeja on kiva lukea, mutta se vaikuttaa ihan liian raskaalta ja kömpelöltä tässä vaiheessa elämää - Opettelin jo DnD 3.5e:n säännöt ulkoa, ja se riitti, enimmäkseen.

Solar toimii, mutta se on luonteeltaan niin pehmeä, että se ei sovellu isku iskulta - tason juttuihin. Mahdollisesti nopein narratiivi pelin etenemisen kannalta. Uskon että sen saa soveltumaan Uresiaan.

Solar Systemin parhaat puolet ovat oma määrittely sille, mistä saa kokemusta, sekä se että vakiona kaikki ratkaistaan makrotasolla.

Taikuuden Konsti sallii käyttää Uskoa(I) ja Keskittymistä(R) efekteihin ja hyökkäyksiin, mikä on itsessään rajallisesti kätevä määritelmä, mutta yhdistettynä Synergian konstiin, toimii jo niinkuin pitääkin, ja on tarpeeksi hintava, kahdella konstilla. Tosin, tapailen vielä sitä miten toiset ovat toteuttaneet - yksi on tietty rajoitetut taidot, joihin pääsee käsiksi vain sopivalla Konstilla.

Olen täysin rakastunut Fateen. Tuskin olen objektiivinen. Aspektit ovat loistava tapa määritellä hahmoja, ja refreshin tiputus on kätevä malli kykyjen ostamiselle. Olen pelauttanut mm. minimaaliset skillit sisältävää varianttia (vain nippukategoriat of sosiaalinen, älyllinen, ja ruumiillinen), mikä toimi ihan pop.

Fatesta voisi ehkä saada modifioitua Exalted - moottorin. Storyteller ei ole oikeastaan niin olennainen pelille, kuin mitä on Essence, Motes, Charms, Willpower & Virtues. Ja ehkä myös hyveet ja tahdonvoiman voi tiputtaa. Stuntit ovat kyseenalaisia - Solarissa ne olisi voinut tehdä temppuilun avaimella, mutta Fatessa pitää ehkä olla stuntti stunttailuun? DFRPG:hen Fatessa määriteltiin erikoisstuntit, eli yliluonnolliset kyvyt. Samalla lailla voitaisiin ehkä määritellä erikoisstressiradat ja jopa erikois-Fatepisteet?

Pitää miettiä tätä. Lisäksi Projekt Sekigaharaa pitää vilkaista näin uusia asioita oppineena.

Edit:
Jatko.

Friday, May 24, 2013

Kah, Kahvila Jätkänsaaressa, Alejandro.

Jätkänsaaressa kävellessä tuli vastaan sellainen kahvila kuin Alejandro. Minulla oli puoli tuntia luppoaikaa, joten pysähdyin sinne kirjoittamaan hetkiseksi.

Hyvä ilmapiiri, hyvät hinnat, ja hyvää kahvia. Talon kakku oli herkullista, nam. Suosittelen. Räppäsin pari kuvaakin, pitää katsoa jos jaksaa siirtää ne tänne.

Siinä on samassa myös muita palveluita, mutta eivät olleet ajankohtaisia.

Thursday, May 16, 2013

Salillakäynti success.

Join pari litraa vettä, tulin silti salilta ulos noin kilon kevyempänä. Hyvähyvä.

Tarkoitus olisi käydä joka päivä nyt vähän aikaa, noin terveyskuurina. Ylikunto ei haittaa, kun ei ole tavoitteena urheilla tai hakea huippusuorituksia. Nyt pitää vain osua venyttelysessioihinkin sopivasti.

Tuesday, April 30, 2013

Ainahan se on mielessä, Paino.

Kun ylipainoa on kuitenkin sen verran että pitäisi noin 25 kiloa pudottaa, niin ei se mielestä poistu. Reseptihän on helppo teoriassa: Ruokavalio, lihastyö ja kardio, suurinpiirtein tuossa tärkeysjärjestyksessä.

Lihastyön ja kardion voi periaatteessa kombottaa, tekemällä korkeaintensiivisiä harjoituksia - siihen se meni silloin 8 vuotta takaperin kun viimeksi kunnolla liikuin, tein intervalliharjoituksia hölkkäyksen välissä.

Koska minulla on kuntosalikortti, se on eniten päätöstekninen kysymys. Toki, jos seuraa ruokavaliota, voi tulla nälkäkin, mutta siihen auttaa riittävä ravinteitten saanti sekä satunnaiset sallitut mässäyspäivät.

Notkeutta pitäisi myös ruveta työstämään, olen kangistunut ihan liikaa viimeisen puolen vuoden aikana. Salilla on kaupan joogaa ja venyttelyä, mutta jokin taistelulajikin kyllä kiinnostaisi. Hm.

Joka tapauksessa, viimeistään ensi kuun puolessa välissä olisi tarkoitus ruveta käymään joka päivä salilla.

Monday, March 18, 2013

Korkea kolesteroli

Jep, dieetti vähän jäi. Tai siis paljon.

Kävin verikokeissa ja kolesteroli on about 30% liian korkealla, eli pitää vähän katsoa ruokavaliota, ja yrittää päästä sinne kuntosalille taas välissä. Ihan liian vähälle jäänyt liikunta, olkoonkin että olin terveenä vain pätkän tammikuussa, ja, uh, nyt.

Verensokerit oli OK, mikä on kiva.

Ruokavaliolle ei paljoa voi tehdä. Kauraa lisätä, jättää lihapiirakat pois --- muuten tulee yleensä syötyä enimmäkseen OK. Olkoonkin, jos hedelmäpalvelusta ei tulisi työpaikalle lähetystä joka viikko, tilanne olisi varmaan toinen. Syön ihan liian vähän kasviksia.

Tuesday, February 19, 2013

Prosessi

Varoitus: Mindstream.

Olet vastuussa projektista, jonka onnistuneeseen läpivientiin sinulla on rahkeet, niin miten se varsinaisesti tapahtuu? Mitkä esteet haittaavat kehitystä?

Twitter, sähköposti, juutuubi ynnämuut hidastavat hanketta, niitä sortuu helposti tuijottamaan. Miksi?

Yhtälö.

Motivaatio on yhtä kuin usko onnistumiseen kertaa työn arvostus, jaettuna impulsiivisuus kertaa viivytyksillä.

Motivaatio kasvaa kun lisää sitä miten mielekkääksi näkee työn, lisää uskoa hankkeen onnistumiseen ja vähentää impulsiivisuutta.

Impulsiivisuuteen sortuu, kun tarvitsee lepoa projektista, mutta jos kyseessä on jokin internetin aikakuiluista, niin helposti menettää arvioimaansa enemmän aikaa, kun viiden minuutin tauko paisuukin puoleksi tunniksi.

Työn arvo on summa lopputuloksesta ja tekemisen mielekkyydestä. Jos palkinto on hieno, mutta työ ei ole mielekästä, työn arvostus on matala. Siivoaminen ei ole mieluista, vaikka lopputulos onkin arvostettava.

Eli. Kun projekti on suoraviivainen, jos onnistumiselle ja mielekkyydelle tulee esteitä - jotain asiaa ei voi testata, jokin blackbox-komponentti toimii epäluotettavasti - häiriö kasvaa signaalissa, kun signaali tarkoittaa työn etenemistä. Packet loss.

Entä sitten, jos este poistuu tai vähenee? Kun blackbox-komponentti korvataan paremmin toimivalla versiolla? Oletettavasti motivaatio kasvaa, varsinkin kun muisto huonosti toimivasta komponentista hiipuu.

Voiko suoraviivaisessa  projektissa olla esteitä ymmärryksessä? Mitä tarkoittaa ymmärryksen este?

Omassa projektissa ei varsinaisesti ole osia joita ei ymmärrä - on vain osia joita ei ole vielä täytetty, joista ei vielä tiedä mitä niihin kuuluu.

Asiakasprojekteissa, ja projekteissa joissa on toisia osallisina, on osia joitten täytyy toimia tietyllä täsmällisellä tavalla, tai projekti ei voi onnistua. Nämä osat voivat olla ymmärryksen ulkopuolella, tai tulla ymmärretyksi väärin.

'Tyhjien' osien toteuttaminen voi myös olla vaikeaa ja pitkällistä.

Virhearvio työn vaikeudesta vähentää uskoa hankkeen onnistumiseen - kun lähtee toteuttamaan osaa, jolle on arvioinut vaikeuden, ja paljastuukin että osa koostuu monesta alikomponentista, jonka kunkin toteuttaminen on samaa vaikeusluokkaa kuin alkuperäisen arvioidun osan, eikä ole takeita että alikomponenttia ei joudu myös purkamaan alaspäin.


Monday, January 21, 2013

Tänään salille // Programmer's Block

Jos nenä onnistuu olemaan vuotamatta verta, niin menen hikoilemaan tänään. Koska kunto ei parane itsestään, eivätkä kilot eikä sentit karise.

Töissä on ollut vaikeaa. Ei muuten, mutta on ollut todella vaikea kirjoittaa koodia, varsinkin niin että saa asioita valmiiksi. Toivottavasti kyseessä on vain blokki eikä burnoutin alkuvaihe. Kieltämättä, pari viime viikonloppua ovat olleet epätehokkaita irtiottomielessä, ja kunnon irtiotto on tarpeellinen sen kannalta että jaksaa olla töissä.

Syytän osittain kylmää säätä. Ei tee mieli lähteä, noh, minnekkään.

Lukemisen alla on Brian Sandersonin 'Warbreaker ', William Gibsonin 'Virtual Light ' sekä Stephen King, 'On Writing '

Writing Excuses - podcastia on tullut kuunneltua, sekä Youtubesta joitain kiintoisia luentoja.

Friday, January 18, 2013

Windows 7 - osion kutistaminen ja Ati koko ruudulle hdmi-kaapelilla

Minulla on Windows 8:n asennus uudelle osiolle työn alla.
Windows 7 - partition kutistaminen osoittautui yllättävän hankalaksi, Ultradefrag nakkaa tietyt tiedostot osion loppuun, mistä ne piti saada alkuun.
Vakio-defrag, ultradefrag, Defraggler ja Auslogics Disk Defrag epäonnistuivat.

MyDefrag tuntuisi toimivan.

Noin niinkuin tiedoksi.

Päädyin asentamaan windows 8:n vhd:lle. Näytönohjain ei halunnut aluksi näyttää kuvaa koko ruudulla ulkoisella monitorilla, joten joutui tutkimaan. Tästä linkistä löytyi apu.

Tuesday, January 08, 2013

wikidPad

tl;dr:
Suosittelen.

Pidemmin:
Minulla on tapana kokeilla kaiken maailman editoreita aina välissä, ja moni niistä on ainakin okei, ja usealle löytyy jokin spesifinen käyttötarkoitus. Vimiä suosin yleisesti, ja Q10 on tämän hetkinen suosikkini distraction-free editoreista.

WikidPad on editori wikimoodissa, ja vaikuttaa aika kivalta työkalulta ajattelemiseen. Voit kirjoittaa sekaan WikiSanan, josta kllikkaamalla pääsee ko. sivulle. Tämän lisäksi linkit näkyvät vasemmassa reunassa.

Tämä on oikein kätevää vaikkapa seikkailun suunnitteluun. Voin kirjoittaa MonsterManual, ja tuplaklikkauksen jälkeen minulla on paikka jonne laitan monsterit, voin kirjoittaa ImportantLocations ja bam! minulla on paikka minne laittaa ne. Kätevää. Ja koko homman voinee exportata HTML:ksi, vaikka en ole siihen vielä niin tutustunut.

Tärkeää on siis, että tämä on editori, ja koko ajan editointitilassa. Normaalisti wikissä liikuttaessa joutuu vaihtamaan editointi - ja lukutilan välillä, mikä on epäkätevää luomisprosessin aikana.

Ehdin vain vähän tökkimään tätä tosin eilen, joten pienellä varauksella uskallan suositella.

*edit*
Alternative To wikidPad
Kokeilin Tomboy Notesia, jonka vika on lähinnä siinä että se avaa uuden ikkunan kaikelle mahdolliselle. Muuten ihan pätevä.

Tässä tapaillessa tulee huomanneeksi että ihan tekstieditori, jossa on vasemmassa reunassa kansion tiedostot auki, ja tabituki on aika riittävä, jos vain on sen verta kurinalainen että tekee nipun kansioita.

Tämä ei ole ihan täysin riittävä, minulla kun esim. oli tapana kirjoitella officella tulostuskuntoon hahmot ja seikkailut. Hm.

Seuraavaksi voisi vähän vilkaista Scriveneriä.

Monday, January 07, 2013

Uuden vuoden wassup // Dieetti

Eli. Olen palannut arkeen.
Tammikuun tavoitteena on tiputtaa senttejä vyötäröltä.
Asian edesauttamiseksi laitan ylös metriikkaa (normi, minimi, maksimipullistus) spreadsheettiin, ja Google Docs piirtää siitä käppyrän.
Muuten, tämä tiheä sairastelu haittaa, no, kaikkea.

Normivyötärö on tällä hetkellä n. 109 senttiä, minimi 102 ja maksimi 116-119 muistaakseni.

Muutama idea pyörii päässä tällä hetkellä, mutta on vielä sellainen tottumattomuus etelässäoloon tyyppinen häslinki päällä. Aika kuluu nopsaan.

Wednesday, January 02, 2013

Uuden vuoden suunnitelmat

Hyvää uutta vuotta noin ensiksi.

Joulun ja uudenvuoden väli? Söin. Omnomnomnom. Kinkkua, joulutorttuja, piparia. Jonkin verran suklaata.
Nyt pitää sitten elää oikein uudenvuoden ja joulun väli.
Mieli kyllä tekee vielä suklaata.

Olen flunssassa (taas!), mutta Tammikuu on vatsanpienennyskuukausi. Eli eli, tulen postaamaan vyötärön sentit tänne, ja hakemaan niille pienennystä.

En osaa sanoa paljonko se on nyt tarkalleen, mutta enempi kuin metri.
Alle metrin olisi minulle normaali, ja alle 95 senttiä olisi hyvin.
Eli, keskivartaloharjotteita luvassa, ja jahka flunssa hellittää? Kardiota. Kolme varttia kardiota päivässä on aika tehokasta, mutta se saattaa olla tylsää. Ehkäpä kuntosalijumppa + 15 min kardiota päivälle?

Mutta siis, vyötärö pienenemään!

Friday, December 21, 2012

PHP array_update


function array_update($source, $updates, $keyGen = NULL) {
$out_array = array();
foreach ($source as $key=>$item) {
foreach($updates as $k=>$v){
if (isset($item[$k])) {
$item[$k] = $v;
} else {
throw new Exception("Item has no key $k");
}
}

if (NULL === $keyGen || !is_callable($keyGen)) {
$out_array[$key] = $item;
} else {
$out_array[$keyGen($item)] = $item;
}
}
return $out_array;
}

Although, array_map....

*update*

for some reason, no array_reduce with PHP5.3.3 in Debian, so...


function array_reduce($input, $callback, $initial = NULL) {
$v = $initial;
foreach ($input as $item) {
if (is_callable($callback)) {
$v = $callback($v, $item);
}
}
return $v;
}

Wednesday, December 19, 2012

Tekstuurimappaus

Ei ole vielä auennut, ei.

Mutta siis,

kun meillä on kolmio abc, jonka pisteet on järjestetty Y:n mukaan,

josta piirretään vaakasuora segmentti (x1, x2, y)

ja meillä on tekstuuri, jossa on määritelty kolmio ijk niin että i vastaa a:ta jne,

piste u, v vastaa pistettä x1, y ja
piste u', v' vastaa pistettä x2, y, niin

piste u = delta ij.X * ((x1-a.X)/delta ab.X)
piste v = delta ij.Y * ((y-a.Y)/delta ab.Y)


piste u' = delta ik.X * ((x2-a.X)/delta ac.X)
piste v' = delta ik.Y * ((y-a.Y)/delta ac.Y)

ensimmäinen näytepiste tekstuurista on u, v.

tämän jälkeen, otamme seuraavan näytteen pisteestä
u + ((u'-u)/(x2-x1))
v + ((v'-v)/(x2-x1))

kunnes näytteenottopiste on u', v' ja näytteitä on otettu (x2-x1) kappaletta.

x2, x1 ja y vastaavat todellisia koordinaatteja bufferissa.

Kokeilen mennä tällä ja katson mitä tapahtuu. Lisään ehkä havainnollistavan kuvan tänne johonkin väliin.

Tuesday, December 18, 2012

Dieetti, missä sitä ollaan?

Eli, nyt on 43. päivä, kuusi viikkoa takana.
En hoksannut punnita itseäni, kun pyörähdin salilla viime... mm, lauantaina, vai perjantaina? Olin viikonlopun Turussa, jolloin dieetti EI ollut voimassa, vaikka en isommin mättänytkään ruokaa - en tiedä, onko se tottumiskysymys vai johtuuko se kromin syönnistä, mutta ruokahalu on enimmäkseen kurissa.

Tämän päivän syönnit tulevat olemaan:
kuppi jugurttia, mandariini, kahvia, viinirypäleitä, ja n. 3-4 desin ruoka-annos.

En ole varma riittääkö tuo, ja joka tapauksessa, pitää käydä ruoka-kaupassa. Saatan ostaa kananmunia. Yhtä kaikki, en ainakaan kovin paljoa tuon ohi mene. Arvelisin että olen n. 7 kiloa pahimman alapuolella nyt. Saattaa olla optimistinen arvio, tosin.

Muuten, tuntuu että olen flunssasta taas toipunut, joten käyn salilla varmaan joko tänään tai huomenna.

Saatanpa värkätä naiivin, eli perspektiivin huomiotta jättävän,  tekstuurimappaus-algoritmin kanssa tänään.

Friday, December 14, 2012

Helppo ja nopea kolmionpiirtorutiini.

Vau. Kehitys kehittynyt ja oppi opittu.

public static void SolidTriangle(Point a, Point b, Point c, Color color) {
            Point[] points = { a, b, c };
            points = points.OrderBy((i => i.Y)).ToArray();
            a = points[0];
            b = points[1];
            c = points[2];
            double dabx = b.X - a.X;
            double daby = b.Y - a.Y;
            double dacx = c.X - a.X;
            double dacy = c.Y - a.Y;

            double x1 = a.X;
            double x2 = a.X;
            int y = a.Y;
            while (y != b.Y) {              
                HorizontalLine((int)Math.Round(x1),
(int)Math.Round(x2), y, color);
                x1 += dabx / daby;
                x2 += dacx / dacy;
                y++;
            }
            double dbcx = c.X - b.X;
            double dbcy = c.Y - b.Y;
            x1 = b.X;
            y = b.Y;
            while (y != c.Y)
            {
                HorizontalLine((int)Math.Round(x1),
(int)Math.Round(x2), y, color);
                x1 += dbcx / dbcy;
                x2 += dacx / dacy;
                y++;
            }

  }
Samat periaatteet kuin mitä aikanaan päättelin, mutta nätimmin  tehtynä. Tämä on toimivaa c-sharppia.
Voisi testiksi vääntää saman tuonne JavaGraphicsiin, jos jaksaa.

Tätäkin voi vielä yksinkertaistaa, tarvitaan ainoastaan kolme relevanttia deltaa., ja saa kaksi jakolaskua while-looppien ulkopuolelle. Olkoonkin että fiksu kääntäjä osaa optimoida tuon automaagisesti.

Thursday, December 13, 2012

Laatikkotörmäys ja dieetti

Pienensin annoskokoa. Saas nähdä tuleeko miten nälkä. Tänään voisi käydä silleen nätisti salilla, lähinnä saunassa, mutta voisi myös kävellä. En varmaan rääkkää itseäni, on sen verta flunssainen olo.

BOX COLLISION

eli siis se laatikkotörmäys. Kun kaksi kappaletta liikkuu ruudulla, on hyvä tietää josko net ovat törmäämässä. 
Tähän tuli pyörä, vai liekkö tässä tapauksessa laatikko, keksittyä uudelleen. 

A

B


Eli meillä on laatikot A, ja B, joilla on koordinaatit x, y, leveys & korkeus w, h.

Pystyakselin törmäys:
Jos A.x + A.w // oikea ylänurkka
on suurempi tai yhtäsuuri kuin B.x // vasen ylänurkka
JA
A.x on pienempi kuin B.x + B.w
Niin, kappaleet ovat samalla pystylinjalla, ja voimme tarkistaa varsinaisen törmäyksen.
Jos samalla linjalla olevissa kappaleissa,
A.y + A.h eli kappaleen A alareuna, on suurempi kuin B.y,
JA
A.y on pienempi kuin B.y, A ja B ovat törmänneet reunoistaan, B:n yläreunasta.

alapuolen törmäykseen voimme vain nakata A:n ja B:n ristiin.

Vaakasuuntaisessa törmäyksessä käännämme vain  yhtälön kyljelleen.

A

B


Pseudokoodia:

if a.x+a.w <= b.x and a.x <= b.x+b.w then:
    if a.y+a.h >= b.y and a.y < b.y then:
        collision at b.y
    if b.y+b.h >= a.y and b.y < a.y then: 
        collision at b.y+b.h
if a.y+a.h <= b.y and a.y <= b.y+b.h then:



    if a.x+a.w >= b.x and a.x < b.x then:
        collision at b.x
    if b.x+b.w >= a.x and b.x < a.x then: 
        collision at b.x+b.w

Nyt, tämä koodi tuottaa ongelmia kun useassa tilanteessa rekisteröidään sekä x- ja y-akselin törmäys.
Tämän voi ratkaista laskemalla kollisio linjalle keskipisteestä. Esimerkiksi ylläolevassa kuvassa, kappaleen A keskipisteestä piirretyssä pysty- ja vaakasuuntaisissa linjoissa x-akselilla ei tapahdu törmäystä kappaleeseen B, kun taas y-akselilla tapahtuu. Yleisesti, boxcollision on lähinnä lähtökohta tarkemmalle törmäystarkastelulle