Computer Science Canada

Need professional help...

Author:  Homer_simpson [ 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 Evil or Very Mad

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 Crying or Very sad
Posted Image, might have been reduced in size. Click Image to view fullscreen.

Author:  Catalyst [ Sat Mar 06, 2004 11:33 pm ]
Post 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]));

Author:  Homer_simpson [ Sun Mar 07, 2004 12:52 am ]
Post subject: 

Laughing Laughing Laughing Laughing Laughing Laughing Laughing
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.

Author:  da_foz [ Mon Mar 08, 2004 4:25 pm ]
Post subject: 

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

Author:  wtd [ Mon Mar 08, 2004 4:42 pm ]
Post 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.

Author:  Homer_simpson [ Mon Mar 08, 2004 6:09 pm ]
Post subject: 

Maaaan!!! the thread is already over!
shut the hell up! Evil or Very Mad


: