Solve Angle C: Is it Between A & B?

  • Thread starter Thread starter Narf the Mouse
  • Start date Start date
  • Tags Tags
    Angle Mathematical
Click For 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.
 
Here is a little puzzle from the book 100 Geometric Games by Pierre Berloquin. The side of a small square is one meter long and the side of a larger square one and a half meters long. One vertex of the large square is at the center of the small square. The side of the large square cuts two sides of the small square into one- third parts and two-thirds parts. What is the area where the squares overlap?

Similar threads

Replies
1
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 13 ·
Replies
13
Views
3K
  • · Replies 20 ·
Replies
20
Views
4K
Replies
5
Views
2K
  • · Replies 14 ·
Replies
14
Views
2K
Replies
2
Views
3K
  • · Replies 18 ·
Replies
18
Views
4K
Replies
3
Views
1K
  • · Replies 31 ·
2
Replies
31
Views
3K