📄 unit1.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include<math.h>
#include<stdio.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
float a=270; /*起始角度*/
float b=0; /*终止角度*/
float R=100; /*圆半径*/
int NR=0; /*方向,1为逆向,0为顺向*/
float XE; /*终点横坐标*/
float YE;/*终点纵坐标*/
float XS ;/*起点横坐标*/
float YS ;/*起点纵坐标*/
float STEP=1 ;/*步长*/
int FM,XOY;
int p_xe,p_ye,p_xs,p_ys;
void initial(void) /*始初化函数*/
{FM=0;
if(NR==1)
{if(XS>0&&YS>=0)XOY=1;
if(XS<=0&&YS>0)XOY=2;
if(XS<0&&YS<=0)XOY=3;
if(XS>=0&&YS<0)XOY=4;
}
if(NR==0)
{if(XS>=0&&YS>0)XOY=5;
if(XS<0&&YS>=0)XOY=6;
if(XS<=0&&YS<0)XOY=7;
if(XS>0&&YS<=0)XOY=8;
}
}
void xoy1() /*插补函数*/
{if(FM>=0){YS=YS+STEP ; FM=FM-2*YS+1;}
else if(FM<0){XS=XS-STEP ; FM=FM+2*XS+1;}
}
void xoy2()
{if(FM>=0){XS=XS-STEP; FM=FM+2*XS+1;}
else if(FM<0){ YS=YS-STEP; FM=FM+2*YS+1;}
}
void xoy3()
{if(FM>=0){YS=YS-STEP; FM=FM+2*YS+1;}
else if(FM<0){XS=XS+STEP; FM=FM-2*XS+1 ;}
}
void xoy4()
{if(FM>=0){XS=XS+STEP; FM=FM-2*XS+1;}
else if(FM<0){YS=YS+STEP; FM=FM-2*YS+1 ;}
}
void xoy5()
{if(FM>=0){XS=XS+STEP ; FM=FM-2*XS+1;}
else if(FM<0){YS=YS-STEP ; FM=FM+2*YS+1 ;}
}
void xoy6()
{if(FM>=0){YS=YS+STEP ; FM=FM-2*YS+1;}
else if(FM<0){ XS=XS+STEP ; FM=FM-2*XS+1;}
}
void xoy7()
{if(FM>=0){XS=XS-STEP ; FM=FM+2*XS+1;}
else if(FM<0){ YS=YS+STEP ; FM=FM-2*YS+1;}
}
void xoy8()
{if(FM>=0){YS=YS-STEP ; FM=FM+2*YS+1 ;}
else if(FM<0){XS=XS-STEP ; FM=FM+2*XS+1;}
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{ int g=0; int k=0;
FILE *fp;
char p[]="pline";
fp=fopen("d:\\yuan.scr","w");
fprintf(fp,"%s\n",p);
float pai=3.14159;
XE=R*cos(b*pai/180);
YE=R*sin(b*pai/180);
XS=R*cos(a*pai/180);
YS=R*sin(a*pai/180);
fprintf(fp,"%f,%f\n",XS,YS);
if(a==b)k=1;
p_xs=XS+250;
p_ys=-YS+250;
p_xe=XE+250;
p_ye=-YE+250;
Canvas->Pen->Color=clGreen;
initial();
Canvas->MoveTo(p_xs,p_ys);
for(;;)
{switch(XOY)
{case 1:xoy1();break;
case 2:xoy2();break;
case 3:xoy3();break;
case 4:xoy4();break;
case 5:xoy5();break;
case 6:xoy6();break;
case 7:xoy7();break;
case 8:xoy8();break;
}
fprintf(fp,"%f,%f\n",XS,YS);
Canvas->LineTo(XS+250,-YS+250);
if(k==0)
{
if((fabs(XS-XE)<=0.99999*STEP)&&(fabs(YS-YE)<=0.99999*STEP))break;
}
k=0;
if(g>4)break;
if(NR==1)
{if(XOY==1)
if((fabs(XS)<=0.9999*STEP)&&((YS-R)<=0.9999*STEP)) {XOY=2;g++;}
if(XOY==2)
if((fabs(YS)<=0.9999*STEP)&&((XS-R)<=0.9999*STEP)){XOY=3;g++;}
if(XOY==3)
if((fabs(XS)<=0.9999*STEP)&&((YS-R)<=0.9999*STEP)){XOY=4;g++;}
if(XOY==4)
if((fabs(YS)<=0.9999*STEP)&&((XS-R)<=0.9999*STEP)){XOY=1;g++;}
}
if(NR==0)
{if(XOY==5)
if((fabs(YS)<=0.9999*STEP)&&((XS-R)<=0.9999*STEP)){XOY=8;g++;}
if(XOY==8)
if((fabs(XS)<=0.9999*STEP)&&((YS-R)<=0.9999*STEP)){XOY=7;g++;}
if(XOY==7)
if((fabs(YS)<=0.9999*STEP)&&((XS-R)<=0.9999*STEP)){XOY=6;g++;}
if(XOY==6)
if((fabs(XS)<=0.9999*STEP)&&((YS-R)<=0.9999*STEP)){XOY=5;g++;}
}
}
fprintf(fp,"\n\n");fclose(fp);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormPaint(TObject *Sender)
{
Canvas->Pen->Color=clBlack;
Canvas->MoveTo(100,250);Canvas->LineTo(400,250);
Canvas->MoveTo(250,100);Canvas->LineTo(250,400);
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -