Matrix: Difference between revisions

From Graal Bible
No edit summary
No edit summary
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
http://www.antiunixmad.com/
[[Category:Scripting Reference]]
A '''matrix''' (''pl.'' matrices) is a list of numbers, generally who have a relationship between them, that are ordered in a type of mathematical array. A matrix, m, may be written as either [m], or (m) in mathematics, where m is a placeholder for the numbers in the matrix.


GGGG RRRR  A  A  L
== Reading a Matrix ==
G    R  R A A A A L
Typically in math, a matrix is ordered in rows and columns, which are counted by increasing i and j respectively. One can think of a matrix as a 2-dimensional array where each object in the 1st dimension holds an array of numbers in that row.
G GG RRRR AAA AAA L
G  G RR  A A A A L
GGGG R RR A A A A LLLLLL


Viper's Graal Issues.
An entry at i=2 and j=3 is noted by either M[2,3] or m<sub>2,3</sub>. These numbers are important for some modifications involving these matrices.


Hello everyone, as of late, many people have been attacking me on the issues and matters,
In GraalScript, however, matrices are used to perform calculations involving objects that rotate, move, or are scaled. The first three elements in such an array are for position:
trying to lie about things, bend the truth, and downright spin to make me and others of my cause
look bad, in this text document i will discuss and lay to rest the issues that matter.


I have been involved graal for over three years now, and i used to really like Graal and its
{{code|1=
admins alot, then slowly after about a year Graal and its admins went in a bad downward spiral,
x = m[0]; y = m[1]; z = m[2];
i still stuck with graal in hopes graal would pull itself out of this hole and unixmad would go
}}
back to the right path, this however did not happen, instead unixmad and even stefan went fouler
The following three elements are for rotation:
and lower than i could have imageined, First with fireing Pachuka and Fuitad, two of the BEST
{{code|1=
graal admins ever in my view for no other reason than disagreeing with his future plans, then if
eulerrotation = m.subarray(3,3);
just fireing them was not bad enough, he threatend to sue them and kill they're families, this
}}
was so wrong and bad Fuitad even said he would punch unixmad in the face for saying that if he
The final element is angle in degrees:
met him in real life, but that was just the beginning of the downward spiral unixmad foolishly
{{code|1=
invoked onto graal, he then blatantly STOLE a domain name graal.net from Owl Shimy which costed
temp.angle = degtorad(m[6]);
over 30$ US Dollars, and never gave it back to him and never paid him for the cost of the domain,
}}
he also threatend to sue Owl Shimy and kill his family although it was Unixmad which stole the  
== Demystifying Matrices in GraalScript ==
domain from Owl Shimy, then around Graal1.3.1 he blocked off Gservers officially and threatend
If you have ever tested any of the matrix functions built into GraalScript, you may be lost as to where the return value comes from. Well, luckily there are some adept enough with math to understand these fu {{code|1=nctions. These are their findings.
to sue anyone that ran the former Gservers, although they were released as "Freeware" and
 
actually used to encourage people to use the Gservers, this was a blatant attempt to monopolise
=== matrixcreate() ===
, threaten, and intemidate that players that actually helped graal and supported him, he then
Let '''v''' be a vector and '''a''' consisting of a vector and a scalar.
made claims he copyrighted "Graal" and would contact so called "Lawres" about anyone that used
 
the name "Graal" or had "Graal Files" on there websites, although graal was distributed as
==== Usage ====
"Freeware" or "Shareware" and had no official software copyrights related to it, and that the
{{code|1=
name "Graal" was actually the name of a holy sacred golden cup used in some religion, and in that
strMatrix = matrixcreate(v,a);
he has commited blasphemy against whatever religion has the so called "Holy Graal", then later on
}}
Unixmad fired SuperNick, because of his country and his origion and called him an American Asian
Where v describes the translation (position) and 'a' describes the rotation (rotation axis and angle).
slut, this was the first sign of racism on the part of Unixmad, towards Graal1.4.1 Unixmad was
 
secretly unwrapping his sadistic plans, he then started claiming credit and claiming to own
==== Return Value ====
the copyrights to graal, although unixmad has done nothing but host some stupid weak as servers,
Returns a matrix array of length 7 (this will be explained later).
and yet Stefan Knorr has done all the real work for Graal, and was the one to make ZeldaOnline
 
, GraalOnline in the first place and has written every bit of codeing for the Graal Client ,
==== Example ====
Gserver, RC, ect, yet unixmad the worthless pile of trash that he is steals all credit for Graal,
{{code|1=
then in February 2001, Unixmad and Antago release Graal2001 and the start of the "Pay to Play"
temp.matrix = matrixcreate({1,1,1},{1,7,1,1});
system, now i have no problem with the fact that it is pay to play, the issue is when you PAY
// This will return 1,1,1,0.140028,0.980196058,0.140028,7.14595223
for something you actually expect to get the worth while of your money in this product, but
}}
instead they got a shittily made level generated land that was 99% empty, the NPCs were and are
 
laggy as hell, and there were no quests, and there is only two shitty things today for hearts
==== The Math Behind the Function ====
that suck so much i refuse to even call them quests, and to add to that about 40% of everyone
The first three numbers of the return value should be rather familiar. It is the vector you passed to the function. The other four seem to come out of nowhere. However, there is a method to this madness. The first of these three are merely a property of angles. Because of the [[Dot Product]] of vectors, we are able to calculate the cosine of the angle between two vectors. Well, we have actually created a new vector in this code!
that paid and gave unixmad there credit card number NEVER got the accounts they paid 27$ or more
 
for, and those that did clearly got chumped out by a cheap peice of crap that aint worth paying
As defined in [[Vectors]], we know that there are three unit vectors that lay on the x, y, and z axes. These vectors have been given the letters '''i''', '''j''', and '''k''', respectively. The first value defined in the "rotation" is multiplied to '''i''', the second to '''j''', and so forth, and this makes a new vector. However, this still does not tell us why we have these numbers returned to us.
for, it sucked so badly that most people played on Graal Classic still, even those that foolishly
 
paid for pay to play accounts, and in an attempt to "FORCE" people to pay for a shitty product
From the definition of the dot product, we know that
they do not want against they're will Unixmad hired "Tyhm" to deface and ruin GraalClassic in
cos(&theta;) = u&#0149;v/(|u||v|)
an attempt to make it buggier and less fun than even Graal2001, about this time i was disgusted
The first three numbers returned to us are the cosine of the angles between the new vector (in this case, <1,7,1>) and each of our unit vectors. For example:
with unixmad and most of the other admins and decided to downright turn against Graal and for the
cos(&alpha;) = <1,7,1>&#0149;<1,0,0>/(|<1,7,1>||<1,0,0>|) = 1/&radic;51 = 0.1400280084
most part stop playing the peice of crap in general. People starting getting angry, complaining,
cos(&beta;) = <1,7,1>&#0149;<0,1,0>/(|<1,7,1>||<0,1,0>|) = 7/&radic;51 = 0.9801960588
asking for help, and asking for refunds, of coarse unixmad gave noone a cash refund, and simply
cos(&gamma;) = <1,7,1>&#0149;<0,0,1>/(|<1,7,1>||<0,0,1>|) = 1/&radic;51 = 0.1400280084
deleted and banned "PAID ACCOUNTS" of those who complained, asked for help, or asked for a refund
 
these are PAYING CUSTOMERS, they have the rights of basic service that they PAID for, unixmad
''There is an evident difference between the values given here and the return value. A computer cannot calculate cosine on its own. It merely uses a method of estimation.''
promises pay to play players a quality product and customer service, but instead gives them a
 
grade F product and ripps off his customers and delete they're accounts that they PAID HIM money
cos(&alpha;)<sup>2</sup> + cos(&beta;)<sup>2</sup> + cos(&gamma;)<sup>2</sup> = 1 <sup>(1)</sup>
for, his excuse? Credit card fraud, when infact at least 90% of the people he bans for credit
 
card fraud pay legitamately with there OWN credit cards or pay via paypal by check, and yet
<hr width="33%" noshade="noshade">
Unixmad has stolen and used others credit card numbers to buy things for himself on several
(1) The returned values are accurate within &plusmn;10<sup>-5</sup>
occassions, he also claims he needs pay to play money to keep graal alive and running, yet there
 
has been evidence that he makes at least 90% profit out of the monies he gets, and that he uses
So far, we have 6 of 7 figured out. The last is the simplest of them all. Plugging the new vector into vectorlen() or using &radic;(x<sup>2</sup> + y<sup>2</sup> + z<sup>2</sup>) returns it's magnitude. This, multiplied by the fourth number of the second parameter, is the last of the returned values (and as far as anyone can tell the vector passed to the function has no bearing on the return value).
illegal porn ad banners and illegal cookie style web tracking and giveing email adresses of the
 
players and even phone numbers of every player to spam and telemarketting companies without
=== matrixcreatefromeuler() ===
there permission, he even keeps personal player info, includeing email, adress, and phone number
Let '''r''' be an array describing rotation, {&alpha;,&beta;,&gamma;}.
on unsecure servers which have already been leaked out, such info about people should not be on
 
a public webserver accessable to the internet in anyway, then after all that Unixmad starts
==== Usage ====
banning african american people, asians, koreans, and or people with images of people of that
{{code|1=
race from the Graal2001 forums and graal itself, yet again they are paying customers and this
strMatrix = matrixcreatefromeuler(r);
is another sickening act of racism on the part of Unixmad and GraalOnline, and then even more
}}
disgusting is what Stefan posts on the Graal2001 forums, he makes several anti american, racist,
Where r describes the rotation (rotation axis and angle).
pro terrorist, pro nazi, and pro taliban comments on that post and goes on and on several pages
 
bashing americans, this post was offense, obcene, and disgusting to many people includeing myself
==== Return Value ====
. If all that does not make you sick to your stomache or dislike unixmad yet, i am far from done,
Returns a matrix array of length 7.
then Unixmad proceeds to illegally DDOS webservers of mafukie and make threats to him over the
 
phone, and has phone assaulted me over 40 times a day between midnight and 5am, and has made
==== Example ====
threats to sue dozens of people, kill there families, and shut down innocent websites and
{{code|1=
servers, while hosting illegal stuff and doing illegal things himself with the use of his own
temp.matrix = matrixcreatefromeuler({pi/2,0,pi/2});
wanadoo.fr servers, stuff which includes child porn, bestiality porn, DVD Piracy, DDOS Attacks,
// This will return 0,0,0,-0.577350258,-0.577350258,-0.577350258,119.999976018
theft of copyrighted materials from gameing companies such as nintendo, Credit Card fraud, theft,
}}
spamming, phone harrassment, useage of illegal pirated corperate softwares, all this just to
 
start the list of what Unixmad, Stefan, and they're servers are doing 24/7 for nearly 4 years now
==== The Math Behind the Function ====
, anyone that likes unixmad or thinks he is a good person even after all this is clearly a fool,
'''Coming soon!'''
everything in this document is the truth and why i hate unixmad so much, if you like unixmad
after all these sickening things he does, then you are no better than a KKK or Neo Nazi member
and should go kill yourselfs, i do not tolerate facists, racists, or nazis, they are all bad
people, and unixmad is one of the worst of the worst, and no person with any morales could
tolerate or support such a person like Stephane Portha or Stefan Knorr. The people that spin, lie
and bend the truth in support of unixmad will always exist, but i will always reveal the truth
about unixmad, and EVERYTHING said in this document is true, despite what any assclowns try and
say about this, and this supriseingly enough is only 1% of the bad things Unixmad has done, how
some people even tolerate, none the less support such a bad person is beyond me...
I fight against bad people like unixmad, why? Because unlike many others in this world i actually
care about other people, and i will do everything in my power to stop unixmad from hurting graal
or its innocent players, many say i want to destroy and kill graal, this is NOT true, i used to
love graal, i only wish to stop unixmad's evil sadistic illegal actions and restore graal to the
great game it used to be when it was "for the players, by the players" , but if i have to destroy
GraalOnline in exchange to stop unixmad's tyranny, it will be regreteable, but sometimes some
sacrifices have to be made for the greater good, lets just hope that unixmad drops dead and that
sacrifice never has to be made... I love graal and lots of its players, and i wish to someday
restore it to the grandness it once had, but bad people like unixmad must be gotten rid of if
that is to be achieved...

Latest revision as of 19:40, 5 April 2010

A matrix (pl. matrices) is a list of numbers, generally who have a relationship between them, that are ordered in a type of mathematical array. A matrix, m, may be written as either [m], or (m) in mathematics, where m is a placeholder for the numbers in the matrix.

Reading a Matrix

Typically in math, a matrix is ordered in rows and columns, which are counted by increasing i and j respectively. One can think of a matrix as a 2-dimensional array where each object in the 1st dimension holds an array of numbers in that row.

An entry at i=2 and j=3 is noted by either M[2,3] or m2,3. These numbers are important for some modifications involving these matrices.

In GraalScript, however, matrices are used to perform calculations involving objects that rotate, move, or are scaled. The first three elements in such an array are for position:


x = m[0]; y = m[1]; z = m[2];

The following three elements are for rotation:

eulerrotation = m.subarray(3,3);

The final element is angle in degrees:

temp.angle = degtorad(m[6]);

Demystifying Matrices in GraalScript

If you have ever tested any of the matrix functions built into GraalScript, you may be lost as to where the return value comes from. Well, luckily there are some adept enough with math to understand these fu {{code|1=nctions. These are their findings.

matrixcreate()

Let v be a vector and a consisting of a vector and a scalar.

Usage

strMatrix = matrixcreate(v,a);

Where v describes the translation (position) and 'a' describes the rotation (rotation axis and angle).

Return Value

Returns a matrix array of length 7 (this will be explained later).

Example

temp.matrix = matrixcreate({1,1,1},{1,7,1,1});

// This will return 1,1,1,0.140028,0.980196058,0.140028,7.14595223

The Math Behind the Function

The first three numbers of the return value should be rather familiar. It is the vector you passed to the function. The other four seem to come out of nowhere. However, there is a method to this madness. The first of these three are merely a property of angles. Because of the Dot Product of vectors, we are able to calculate the cosine of the angle between two vectors. Well, we have actually created a new vector in this code!

As defined in Vectors, we know that there are three unit vectors that lay on the x, y, and z axes. These vectors have been given the letters i, j, and k, respectively. The first value defined in the "rotation" is multiplied to i, the second to j, and so forth, and this makes a new vector. However, this still does not tell us why we have these numbers returned to us.

From the definition of the dot product, we know that

cos(θ) = u&#0149;v/(|u||v|)

The first three numbers returned to us are the cosine of the angles between the new vector (in this case, <1,7,1>) and each of our unit vectors. For example:

cos(α) = <1,7,1>&#0149;<1,0,0>/(|<1,7,1>||<1,0,0>|) = 1/√51 = 0.1400280084
cos(β) = <1,7,1>&#0149;<0,1,0>/(|<1,7,1>||<0,1,0>|) = 7/√51 = 0.9801960588
cos(γ) = <1,7,1>&#0149;<0,0,1>/(|<1,7,1>||<0,0,1>|) = 1/√51 = 0.1400280084

There is an evident difference between the values given here and the return value. A computer cannot calculate cosine on its own. It merely uses a method of estimation.

cos(α)2 + cos(β)2 + cos(γ)2 = 1 (1)

(1) The returned values are accurate within ±10-5

So far, we have 6 of 7 figured out. The last is the simplest of them all. Plugging the new vector into vectorlen() or using √(x2 + y2 + z2) returns it's magnitude. This, multiplied by the fourth number of the second parameter, is the last of the returned values (and as far as anyone can tell the vector passed to the function has no bearing on the return value).

matrixcreatefromeuler()

Let r be an array describing rotation, {α,β,γ}.

Usage

strMatrix = matrixcreatefromeuler(r);

Where r describes the rotation (rotation axis and angle).

Return Value

Returns a matrix array of length 7.

Example

temp.matrix = matrixcreatefromeuler({pi/2,0,pi/2});

// This will return 0,0,0,-0.577350258,-0.577350258,-0.577350258,119.999976018

The Math Behind the Function

Coming soon!