Game Maker Particle Attractor

DOCTYPE plist PUBLIC '-//Apple//DTD PLIST 1.0//EN' ' fileTypes gmll name GameMaker Language Legacy (GMLL) patterns comment Keywords match (? name keyword.gmll comment Functions match (? Name support.function.gmll comment Global Variables match (?
Game Maker 8.0’s particle system can be a bit confusing at first. There isn’t a lot of documentation or examples of how it needs to be built in order to work effectively. There are also a huge amount of functions available and it can be hard to know where to start.
Name variable.language.gmll comment Instance Variables match (? Name variable.parameter.gmll comment Constants match (? Name constant.language.gmll comment Line-comments match //[^ n]* name comment.line.gmll begin / * captures 0 name punctuation.definition.comment.mn comment Block-comments end */ name comment.block.gmll comment Literal, string, double-quoted match ['][^']*['] name string.quoted.double.gmll comment Literal, number match b[-+]?[0-9]*.?[0-9]+([eE][-+]?[0-9]+)? B name constant.numeric.gmll scopeName source.gmll uuid 44f1359e-0eb0-4662-a52d-bf0c8a454f23 • Copy lines • Copy permalink • • Go.
Suppose you have a plane equation in local space and you’d like to express that plane equation in world space. The plane in local space is written as: [ P:= (n, w) ] where (n ) is the plane normal and (w ) is the plane offset.
A point (x ) is on the plane if [n cdot x = w ] Now define a transform (A ) as [ A:= (R, p) ] where (R ) is an orthonormal rotation matrix and (p ) is a translation vector. Suppose we have a transform (A ) that transforms points in local space into world space. With our transform (A ) we can convert any point (x_1 ) in local space (space 1) into world space (space 2): [x_2 = R x_1 + p ] Also any vector (n_1 ) in local space can be converted to world space: [n_2 = R n_1 ] Also suppose we have a plane defined in local space (space 1). Then for any point (x_1 ) in local space: [n_1 cdot x_1 = w_1 ] The main problem now is to find (w_2 ), the plane offset in world space. We can achieve this by substitution. First invert the transform relations above: [x_1 = R^T (x_2 – p) ] [n_1 = R^T n_2 ] where (R^T ) is the transpose of (R ). Recall that the inverse of an orthonormal matrix is the equal to the transpose.
A calcutta auction is the most exciting way to enjoy and participate in March Madness. For those uninitiated the idea is fairly simple. Calcutta auction software.

Now substitute these expressions into the local space plane equation: [R^T n_2 cdot (R^T (x_2 – p)) = w_1 ] Expand: [R^T n_2 cdot R^T x_2 – R^T n_2 cdot R^T p = w_1 ] The rotations cancel out since they are orthonormal. Also the dot product is equivalent to matrix multiplication by the transpose. For example: [R^T n_2 cdot R^T x_2 = n_2^T R R^T x_2 = n_2^T I x_2 = n_2 cdot x_2 ] Simplify: [n_2 cdot x_2 = w_1 + n_2 cdot p ] From this we can identify the world space plane offset (w_2 ): [w_2 = w_1 + n_2 cdot p ] Done! Update: Of course it is easy to transform a plane if you have it expressed in terms of a normal and position: [P:= (n,a) ] where (a ) is a point on the plane. The trick is then to find (a ) given just the normal and offset description. [n cdot x = w ] After looking at this for a minute, it appears that if I use the point: [a:= wn ] then [n cdot wn = w(n cdot n) = w ] so it is easy to find a point on the plane given the normal and offset.