///////////////////////////////////////////////////////////////////////////////////////////
http://scripter.egloos.com/viewer/1618411
rx = ((px-rotx)*cos(rad) - (py-roty)*sin(rad))+rotx;
ry = ((px-rotx)*sin(rad) + (py-roty)*cos(rad))+roty;
px , py => 원래 좌표
rotx ,roty => 회전 중심점
///////////////////////////////////////////////////////////////////////////////////////////
http://cafe.naver.com/cafec/165744
ZRotationX에서 Z는 Z축 X는 리턴될 X를 뜻한다.
onx,ony,onz가 기준좌표, x,y,z가 이동할 좌표
double ZrotationX( double onx, double ony, double x, double y, double r ){
return cos( r*PI/180)*(x-onx)-sin(r*PI/180)*(y-ony)+onx; }
double ZrotationY( double onx, double ony, double x, double y, double r ){
return sin( r*PI/180)*(x-onx)+cos(r*PI/180)*(y-ony)+ony; }
double XrotationY( double ony, double onz, double y, double z, double r ){
return cos( r*PI/180)*(y-ony)-sin(r*PI/180)*(z-onz)+ony; }
double XrotationZ( double ony, double onz, double y, double z, double r ){
return sin( r*PI/180)*(y-ony)+cos(r*PI/180)*(z-onz)+onz; }
double YrotationX( double onx, double onz, double x, double z, double r ){
return cos( r*PI/180)*(x-onx)+sin(r*PI/180)*(z-onz)+onx; }
double YrotationZ( double onx, double onz, double x, double z, double r ){
return cos( r*PI/180)*(z-onz)-sin(r*PI/180)*(x-onx)+onz; }