Computer Science Canada Programming C, C++, Java, PHP, Ruby, Turing, VB   Username:   Password: Wiki   Blog   Search   Turing   Chat Room  Members
Need professional help...
Author Message
Homer_simpson

Posted: Sat Mar 06, 2004 9:47 pm   Post subject: Need professional help...

First of all no spamming i'll delete yer spams and take bits away

here's the situation:
i got normals for my polygons... and as we all know normals are vectors...
then i got the normalized vector from my light source to my vector.
after normalizing the light source vectori use the dotproduct to calculate the angle in between the 2 angles and the answers comes in radians...
but sometimes for some reason the answer is bigger than one... so when i pass it through arcsin i get errors anyone know why? here's my code:

 code: lightv [0] = light1 [0] - polynormals [i] [0]; //first we subtract the object locating from light source to get it's vector             lightv [1] = light1 [1] - polynormals [i] [1];             lightv [2] = light1 [2] - polynormals [i] [2];             tmagnitude = Math.sqrt ((lightv [0] * lightv [0]) + (lightv [1] * lightv [1]) + (lightv [0] * lightv [0])); //then calculate the length to normalize             lightv [0] /= tmagnitude; //normalize the light source vector             lightv [1] /= tmagnitude;             lightv [2] /= tmagnitude;             dotproduct = (lightv [0] * polynormals [i] [0]) + (lightv [1] * polynormals [i] [1]) + (lightv [2] * polynormals [i] [2]); //obviously dot product             angle = Math.acos (dotproduct) / (3.141592653 / 180); //here's where da error is

i can't seem to figure it out

vector.JPG
Description:
Filesize:  11.06 KB
Viewed:  3309 Time(s)

Catalyst

Posted: Sat Mar 06, 2004 11:33 pm   Post subject: (No subject)

shouldnt this

 code: tmagnitude = Math.sqrt ((lightv [0] * lightv [0]) + (lightv [1] * lightv [1]) + (lightv [0] * lightv [0]));

be this
 code: tmagnitude = Math.sqrt ((lightv [0] * lightv [0]) + (lightv [1] * lightv [1]) + (lightv [2] * lightv [2]));
Homer_simpson

Posted: Sun Mar 07, 2004 12:52 am   Post subject: (No subject)

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAHAHAHAHAHAAAAA!!!!! Man i'm a fvckin stoner!!! What a stupid mistake!

Man that deserves bits! +lotsa bits!

thx a lot man it works perfectly fine now. would have never figured that without yer help! LOL

btw i made a little graphic thingy in assembly for pascal... pm me if u want it.
da_foz

Posted: Mon Mar 08, 2004 4:25 pm   Post subject: (No subject)

Subscripts are the devil. So hard to find the mistakes.
wtd

Posted: Mon Mar 08, 2004 4:42 pm   Post subject: (No subject)

da_foz wrote:
Subscripts are the devil. So hard to find the mistakes.

While I don't necessarily agree with that, you should attempt to refactor your code. There should never be that much code in one function.
Homer_simpson

Posted: Mon Mar 08, 2004 6:09 pm   Post subject: (No subject)