Solve Angle C: Is it Between A & B?

  • Thread starter Thread starter Narf the Mouse
  • Start date Start date
  • Tags Tags
    Angle Mathematical
AI Thread Summary
The discussion revolves around solving the problem of determining if angle C lies between angles A and B in a line of sight algorithm for a roguelike game. The specific challenge involves handling blocking angles that span from 45 to 225 degrees and vice versa, which complicates the algorithm due to the need for consistent results across all angles. The user seeks a way to manage these angles within a single equation rather than splitting them into 90-degree increments, which would require extensive rewriting. Current solutions involve checking if an angle falls within a range but struggle with the counter-clockwise interpretation of angles. The user is looking for a more efficient and comprehensive solution to this blocking angle issue.
Narf the Mouse
Messages
11
Reaction score
0
...including cases such as between 45 and 225 degrees and between 225 and 45 degrees going the other way.

Which, for programmatical reasons, must all be handled in the same equation.

It's either that, or I re-work my roguelikes' LOS aglorithm to handle everything in 90 degree increments.

Save me a bunch of re-writing?

Thanks.
 
Mathematics news on Phys.org


No idea what you are asking for.

x > 45 and x < 225 does the trick.
 


Narf the Mouse said:
...including cases such as between 45 and 225 degrees and between 225 and 45 degrees going the other way.

Which, for programmatical reasons, must all be handled in the same equation.

It's either that, or I re-work my roguelikes' LOS aglorithm to handle everything in 90 degree increments.

Save me a bunch of re-writing?

Thanks.

Please Explain your problem clearly.
 


How are you "given" the angle?
 


More clearly, it's for a line of sight algorithm for a roguelike. If the algorithm encounters a blocking tile, it generates a blocking angle range - minimum and maximum - produced by said tile. Thereafter, anything which is entirely obscured by said angle - Anything whos corner and middle angles are all inside the blocking angle range - Is naturally not visible.

I also compile all intersecting blocking angles, so as to reduce overhead.

The problem comes with a blocking angle from, say, 45 to 225 or vice-versa, by way of 0/360 instead of 180. That is to say, clockwise from 45 to 225. The algorith tends to think that 45 to 225, counter-clockwise, is blocked.

The conflict comes because the same algorithm must be used for all angles to obtain consistent results.

I've hacked a solution by spitting it into two halves, but I've been unable to find a complete solution on google.
 
Seemingly by some mathematical coincidence, a hexagon of sides 2,2,7,7, 11, and 11 can be inscribed in a circle of radius 7. The other day I saw a math problem on line, which they said came from a Polish Olympiad, where you compute the length x of the 3rd side which is the same as the radius, so that the sides of length 2,x, and 11 are inscribed on the arc of a semi-circle. The law of cosines applied twice gives the answer for x of exactly 7, but the arithmetic is so complex that the...
Back
Top