Tuesday, August 25, 2009

1st try at Python

# for comments
variables. easy.
concatenating strings a bit more troublesome.
eg.:
i = 1.23
s = "hello"
a = s + i
will give error
have to convert to string
a = s + str(i)

b = True
b = not b #store False. same as b = !b

if-else conditions
>>> if x < 0:
...      x = 0
...      print 'Negative changed to zero'
... elif x == 0:
...      print 'Zero'
... elif x == 1:
...      print 'Single'
... else:
...      print 'More'
...


while loop still ok. but must get used to the : at the back
eg.:
i = 0
while i<= 10: # : is equivalent of starting a curly brace {
   print i   # identation used to indicate within while loop
   i = i + 1 # what happened to ++, --?!

for loop v different.
>>> # Measure some strings:
... a = ['cat', 'window', 'defenestrate']
>>> for x in a:
...     print x, len(x)

OR
for i in range(10):
    print i # print 0, 1, 2,..., 9


functions
eg.:
def functionName():
  print "running in function"


classes and objects
class MyClass:
   property = 1 # static variable
   self.myVar = "hello" # instance variable
   def __init__(self, p): # contructor, self = this
         self.property = p

   def method1(self): # note the need for self, even with no arguments/parameters
      print "running method"
   @staticmethod
   def staticMethod2(args, arg2):
      print "call me by classname, eg.: MyClass.staticMethod2(1,2)"

x = MyClass() # instantiate
print x.property
x.method1()

class DerivedClass(MyClass): # inheritance
  newProperty = 2

class SubSubClass(Class1, Class2, Class3): # multiple inheritance supported
  # fields & methods


modules
save into separate .py files
and then import
using import hello (if module is hello.py)
or use from hello import *

Thursday, August 06, 2009

Flash 10: Matrix3D

rawData is set as column major order

hence, gotta transpose to row major

var v:Vector.<Number> = Vector.<Number>(
[1, 2, 3, 4,
5, 6, 7, 8,
9, 10, 11, 12,
13, 14, 15, 16]);
var m:Matrix3D = new Matrix3D();
m.rawData = v;
/*
matrix is stored as
[1, 5, 9, 13]
[2, 6, 10, 14]
[3, 7, 11, 15]
[4, 8, 12, 16]
*/
m.transpose();
/*
matrix is stored as
[1, 2, 3, 4]
[5, 6, 7, 8]
[9, 10, 11, 12]
[13, 14, 15, 16]
*/