#include<Reg52.h>
#include<math.h>
#include"pen.h"
//#define uint unsigned int
//uint X=-60;
//uint Y=60;
// 第一象限画直线
void Line1(int Xe,int Ye,int delay)
{
int N;
int i,F=0;
N=abs(Xe)+abs(Ye);
for(i=0;i<N;i++)
{
if(F>=0)
{
X_step_right(delay);
F=F-Ye;
}
else
{
Y_step_up(delay);
F=F+Xe;
}
}
}
// 第二象限画直线
void Line2(int Xe,int Ye,int delay)
{
int N;
int i,F=0;
N=abs(Xe)+abs(Ye);
if(Xe==0&&Ye>0)
{
for(i=0;i<N;i++)
Y_step_up(delay);
}
else for(i=0;i<N;i++)
{
if(F>=0)
{
X_step_left(delay);
F=F-Ye;
}
else
{
Y_step_up(delay);
F=F-Xe;
}
}
}
// 第三象限画直线
void Line3(int Xe,int Ye,int delay)
{
int N;
int i=0,F=0;
N=abs(Xe)+abs(Ye);
for(i=0;i<N;i++)
{
if(F>=0)
{
X_step_left(delay);
F=F+Ye;
}
else
{
Y_step_down(delay);
F=F-Xe;
}
}
}
// 第四象限画直线
void Line4(int Xe,int Ye,int delay)
{
int N;
int i=0,F=0;
N=abs(Xe)+abs(Ye);
if(Xe==0&&Ye<0)
{
for(i=0;i<N;i++)
Y_step_down(delay);
}
else for(i=0;i<N;i++)
{
if(F>=0)
{
X_step_right(delay);
F=F+Ye;
}
else
{
Y_step_down(delay);
F=F+Xe;
}
}
}
/*void line(Xe,Ye,int delay)
{
int i;
//Xe=Xa-X;
//Ye=Ya-Y;
//X=Xa;
//Y=Ya;
if((Xe==0)&&(Ye>0))
for(i=0;i<Ye;i++) Y_step_up(delay); //加工点在Y正半轴
else if((Xe==0)&&(Ye<0))
for(i=0;i<-Ye;i++) Y_step_down(delay); //加工点在Y负半轴
else if((Xe>0)&&(Ye==0))
for(i=0;i<Xe;i++) X_step_right(delay); //加工点在X正半轴
else if((Xe<0)&&(Ye==0))
for(i=0;i<-Xe;i++) X_step_left(delay); //加工点在X负半轴
else
if(Xe>0)
{
if(Ye>0) Line1(Xe,Ye,delay); //加工点在第一象限
else Line4(Xe,Ye,delay); //加工点在第四象限
}
else
{
if(Ye>0) Line2(Xe,Ye,delay); //加工点在第二象限
else Line3(Xe,Ye,delay); //加工点在第三象限
}
}*/
- 1
- 2
前往页