>>929の続き
上記の式は0°〜90°の場合においてのみ有効です。
270>a>90の場合、cos(a)がマイナスになってしまうので、
cos(a)の解に対して絶対値を求めます
また、180>a>360の場合においても、sin(a)がマイナスになってしまうので、
これもまた絶対値を求めます。

float num ;
float sin_a, cos_a ;

sin_a = fabs(sin(a)) ;
cos_a = fabs(cos(a)) ;

num = ( sin_a*( (float)x1 ) + cos_a*( (float)y1 ) ;
y2 = (int)( num + ( num > (int)num ) ) ;
num = ( sin_a*( (float)y1 ) + cos_a*( (float)x1 ) ;
x2 = (int)( num + ( num > (int)num ) ) ;
…とするといいでしょう。

aが360°以上である場合、一回りしてしまうので、
360°で割ったあまりをaに入れましょう。