Search Tutorials
How To Find The Mouse Location (cont) Comment: ---------------------------------------------- Comment: lookup angle in table Comment: ---------------------------------------------- Set Variable: "counter" = 0 Set Variable: "found" = 0 Loop While (not(found)) If (sin_theta>=Substring (..:sine_lookup_table,(counter*6)+1,5)) Comment: this counter will only increase if sin(Theta) is greater than or exactly the angle match in the lookup table. This way, if the sine value has no exact match then the counter will point to the angle closest (less than) the correct answer. Set Variable: "angle" = counter+1 Else Set Variable: "found" = 1 End If Set Variable: "counter" = counter+1 End Loop What does this loop do? It starts a counter at 0. It looks at the first sine value in the table. If that sine value is less than the calculated vale for our angle, then nothing happens. we increase "angle" by one because it obviously isn't this low. This goes on until our calculated value for our angle becomes LESS than the lookup value in the table. Than means the actual angle we are at is less than the one the counter is at. In that case, we don't increase "angle", we set a variable "found" to "1" (another way of saying "found is true") and now the Loop While (not(found)) statement is false. Loops continue endlessly until the condition in the brackets is true. Since found starts out as "0" (false), not(found) can also be read as "not false". In other words, not(false)=true. So the loop reads (Loop while true). As soon as it the condition changes to "false" it quits the loop, stopping any further calculations because we've found the angle we are looking for. This is just a fancy way to make the loop read more English-like.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|