Check if it is possible to reach vector B by rotating vector A and adding vector C to it | function to check if vector B is possible from vector A ; if d = 0 , then you need to add nothing to vector A ; for all four quadrants ; initialize all three vector coordinates
< ? php function check ( $ a , $ b , $ p , $ q ) { $ d = $ p * $ p + $ q * $ q ; if ( $ d == 0 ) return ( $ a == 0 && $ b == 0 ) ; else return ( ( $ a * $ p + $ b * $ q ) % $ d == 0 && ( $ b * $ p - $ a * $ q ) % $ d == 0 ) ; } function check1 ( $ a , $ b , $ x , $ y , $ p , $ q ) { if ( check ( $ a - $ x , $ b - $ y , $ p , $ q ) || check ( $ a + $ x , $ b + $ y , $ p , $ q ) || check ( $ a - $ y , $ b + $ x , $ p , $ q ) || check ( $ a + $ y , $ b - $ x , $ p , $ q ) ) return true ; else return false ; } $ a = -4 ; $ b = -2 ; $ x = 0 ; $ y = 0 ; $ p = -2 ; $ q = -1 ; if ( check1 ( $ a , $ b , $ x , $ y , $ p , $ q ) ) echo " Yes " ; else echo " No " ; ? >