You can use the approach described in my answer in your second link.
ma = (a2 + a1)/ 2
mb = (b2 + b1)/ 2
cda = Cos(da)
cdb = Cos(db)
To check if an intersection exists and what kind of intersection occurs, find 4 Boolean values
BStartInsideA = (Cos(ma - b1) >= cda)
BEndInsideA = (Cos(ma - b2) >= cda)
AStartInsideB = (Cos(mb - a1) >= cdb)
AEndInsideB = (Cos(mb - a2) >= cdb)
16 ( ). 4- case.
, ( 0b1001 = 9), , seg1-seg2 - AStart , BEnd ( 360 BEnd, AStart).
BEnd >= BStart AEnd >= AStart (, (3,1) (3, 361) 182 179)
( , 4 , 4 ):
0000: no intersection
1111: full circle
0011: AStart-AEnd
1001: AStart-BEnd
0110: BStart-AEnd
1100: BStart-BEnd
0111: AStart-AEnd
1011: AStart-AEnd
1110: BStart-BEnd
1101: BStart-BEnd
1010, 0101
, :
At first check for
0000: no intersection
1111: full circle
then
**11: AStart-AEnd
1001: AStart-BEnd
0110: BStart-AEnd
11**: BStart-BEnd