📄 shift.cpp
字号:
#include "stdafx.h"
/**
*
* 文件名: Shift.cpp
* 描述: 转换类函数实现
* 转换类用于用户坐标和内部坐标之间的转换
* 作者: 魏罡
* 时间: 2005.7.10 - 2005.7.10
*
* file name: Shift.cpp
* description:
* author: WEI-Gang
* time: 2005.7.10 - 2005.7.10
*
*/
#include "shift.h"
///////////////////////////////////////////
CShift::CShift(int x,int y){
x = x-7;
y = y-7;
if(y<=0 &&x>=-y)
type = 0;
if(x<0&&y<x)
type = 1;
if(x>0&&y>x)
type = 2;
if(y>=0&&-x>=y)
type = 3;
if(y>0&&x>=y)
type = 4;
if(y<0&&x<=y)
type = 5;
if(x<=0&&x>-y)
type = 6;
if(x>=0&&x<-y)
type = 7;
}
CShift::CShift(int x1,int y1,int x2,int y2){
x1 = x1 - 7;
y1 = y1 - 7;
x2 = x2 - 7;
y2 = y2 - 7;
switch(x1*3+y1){
case 4:
if(x2-y2<0){type = 2;}else{type = 4;}
break;
case 3:
if(y2<0){type = 4;}else{type = 0;}
break;
case 2:
if(y2+x2<0){type = 7;}else{type = 0;}
break;
case 1:
if(x2<0){type = 2;}else{type = 6;}
break;
case -1:
if(x2>0){type = 1;}else{type = 7;}
break;
case -2:
if(y2+x2>0){type = 6;}else{type = 3;}
break;
case -3:
if(y2>0){type = 5;}else{type = 3;}
break;
case -4:
if(y2-x2<0){type = 1;}else{type = 5;}
break;
}
}
void CShift::Shift(int &x,int &y){
x = x-7;
y = y-7;
switch(type){
case 0:break;
case 1:RR(x,y);break;
case 2:RL(x,y);break;
case 3:RB(x,y);break;
case 4:TX(x,y);break;
case 5:TY(x,y);break;
case 6:TXY(x,y);break;
case 7:TX_Y(x,y);break;
};
x += 7;
y += 7;
}
void CShift::RShift(int &x,int &y){
x = x-7;
y = y-7;
switch(type){
case 0:break;
case 1:RL(x,y);break;
case 2:RR(x,y);break;
case 3:RB(x,y);break;
case 4:TX(x,y);break;
case 5:TY(x,y);break;
case 6:TXY(x,y);break;
case 7:TX_Y(x,y);break;
};
x += 7;
y += 7;
}
void CShift::RR(int &x,int &y){
//右转90度
int td = x;
x = -y;
y = td;
}
void CShift::RL(int &x,int &y){
//右转90度
int td = y;
y = -x;
x = td;
}
void CShift::RB(int &x,int &y){
//转180度
y = -y;
x = -x;
}
void CShift::TX(int &x,int &y){
//X轴转
y = -y;
}
void CShift::TY(int &x,int &y){
//Y轴转
x = -x;
}
void CShift::TXY(int &x,int &y){
//X=Y轴转
int td = x;
x = y;
y = td;
}
void CShift::TX_Y(int &x,int &y){
//X=-Y轴转
int td = -x;
x = -y;
y = td;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -