-----------------------------------
Homer_simpson
Sat Mar 06, 2004 9:47 pm
Need professional help...
-----------------------------------
First of all no spamming i'll delete yer spams and take bits away :evil:
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:
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 :cry:
http://www.compsci.ca/v2/download.php?id=1205
-----------------------------------
Catalyst
Sat Mar 06, 2004 11:33 pm
-----------------------------------
shouldnt this
tmagnitude = Math.sqrt ((lightv [0] * lightv [0]) + (lightv [1] * lightv [1]) + (lightv [0] * lightv [0]));
be this
tmagnitude = Math.sqrt ((lightv [0] * lightv [0]) + (lightv [1] * lightv [1]) + (lightv [2] * lightv [2]));
-----------------------------------
Homer_simpson
Sun Mar 07, 2004 12:52 am
-----------------------------------
:lol: :lol: :lol: :lol: :lol: :lol: :lol:
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
Mon Mar 08, 2004 4:25 pm
-----------------------------------
Subscripts are the devil. So hard to find the mistakes.
-----------------------------------
wtd
Mon Mar 08, 2004 4:42 pm
-----------------------------------
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
Mon Mar 08, 2004 6:09 pm
-----------------------------------
Maaaan!!! the thread is already over!
shut the hell up! :evil: