Anselista oikealle

logo

VRC:n harkkavääntö

Vääntelin tässä hiihtolomalla alkuja VRC:n keinotodellisuuden ohjelmointi -kurssin harkkaan. Omaa tekoani siinä on sitten kaupungin bitmapista nostava algoritmi, reitin suunnittelu ja skriptaus/ajoitus. Cityscapen nosto on onnistunut hyvin, OpenGL on ollut helpompaa kuin luulinkaan, vaikken ilmeisesti tajunnut käyttää heti GL_TRIANGLE_STRIP :ia vaan vetelin rauhallisesti GL_QUADS:eja naamaan. Hjyvä minä.
Reitinsuunnitteluun pistinkin PyGTK:n käyttöön ja hyvää on ollut. Oikein herkkua glade-2:n kanssa. Todella nopea proto ja muutenkin.. nnamm.
Siinä välissä löysin (kun projektiin tarvitsen) bezier -käyrän nopean laskenta-tavan. Itsekin sitä jo joskus laskeskelin, enkä saanut kuin vähän sitä lauseketta auki, olin silloin tosin vasta lukion ekalla.. Hannun sivulla on siitä sitten hyvä selostus. Muutenkin muutamia hyviä temppuja sen sivuilla on näkynyt olevan.
Näin kuriositeettina, tässä on se pätkä Python -koodia joksi hänen C-koodinsa muuntautui (siis todella vähän muutoksia, puolipisteitäkään ei olisi tarvinnut poistaa:
def Bezier(p, steps): t = 1.0/steps temp = t*t f = p[0] fd = 3 * (p[1] - p[0]) * t fdd_per_2 = 3 * (p[0] - 2 * p[1] + p[2]) * temp fddd_per_2 = 3 * (3 * (p[1] - p[2]) + p[3] - p[0]) * temp * t fddd = fddd_per_2 + fddd_per_2; fdd = fdd_per_2 + fdd_per_2; fddd_per_6 = fddd_per_2 * (1.0 / 3); ret = [] for x in range(steps): ret.append(f) f = f + fd + fdd_per_2 + fddd_per_6 fd = fd + fdd + fddd_per_2 fdd = fdd + fddd fdd_per_2 = fdd_per_2 + fddd_per_2 ret.append(p[3]) return ret

05/03/2003 @ 01:36 | /anseli/vrc/ogl | Kirj. 0 | #
Voit tarkistaa HTML:n ja CSS:n oikeellisuuden.