?? uline.~cpp
字號(hào):
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include "Uline.h"
#include "stdio.h"
int XS ; /*起點(diǎn)橫坐標(biāo)*/
int YS ; /*起點(diǎn)縱坐標(biāo)*/
int XE0; /*終點(diǎn)橫坐標(biāo)*/
int YE0; /*終點(diǎn)縱坐標(biāo)*/
int STEP=1; /*步長(zhǎng)*/
int XE; /*變換后終點(diǎn)橫坐標(biāo)*/
int YE; /*變換后終點(diǎn)縱坐標(biāo)*/
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
int XOY; /*直線位置標(biāo)志位*/
int FM, p_xe,p_ye,p_xs,p_ys; /*定義偏差及相對(duì)坐標(biāo)*/
void initial(void) /*確定直線位置*/
{ FM=0;/*偏差置0*/
if(XE>0&&YE>0)
{if(XE>YE) XOY=1;
if(XE==YE)XOY=2;
if(XE<YE) XOY=3;}
if(XE<0&&YE>0)
{if(fabs(XE)<YE) XOY=4;
if(fabs(XE)==YE)XOY=5;
if(fabs(XE)>YE) XOY=6;}
if(XE<0&&YE<0)
{if(fabs(XE)>fabs(YE)) XOY=7;
if(fabs(XE)==fabs(YE))XOY=8;
if(fabs(XE)<fabs(YE)) XOY=9;}
if(XE>0&&YE<0)
{if(XE<fabs(YE)) XOY=10;
if(XE==fabs(YE))XOY=11;
if(XE>fabs(YE)) XOY=12;}
if(XE>0&&YE==0) XOY=13;
if(XE==0&&YE>0) XOY=14;
if(XE<0&&YE==0) XOY=15;
if(XE==0&&YE<0) XOY=16;
}
void xoy1() /*插補(bǔ)函數(shù)*/
{if(FM>=0) {XS=XS+STEP;FM=FM-YE;}
else {XS=XS+STEP;YS=YS+STEP;FM=FM+XE-YE;}
}
void xoy2()
{XS=XS+STEP;YS=YS+STEP;}
void xoy3()
{if(FM>=0) {XS=XS+STEP;YS=YS+STEP;FM=FM-YE+XE;}
else {YS=YS+STEP;FM=FM+XE;}
}
void xoy4()
{if(FM>=0) {XS=XS-STEP;YS=YS+STEP;FM=FM+fabs(XE)-YE;}
else {YS=YS+STEP;FM=FM+fabs(XE);}
}
void xoy5()
{XS=XS-STEP;YS=YS+STEP;}
void xoy6()
{if(FM>=0) {XS=XS-STEP;FM=FM-YE;}
else {XS=XS-STEP;YS=YS+STEP;FM=FM+fabs(XE)-YE;}
}
void xoy7()
{if(FM>=0) {XS=XS-STEP;FM=FM-fabs(YE);}
else {XS=XS-STEP;YS=YS-STEP;FM=FM+fabs(XE)-fabs(YE);}
}
void xoy8()
{XS=XS-STEP;YS=YS-STEP;}
void xoy9()
{if(FM>=0) {XS=XS-STEP;YS=YS-STEP;FM=FM+fabs(XE)-fabs(YE);}
else {YS=YS-STEP;FM=FM+fabs(XE);}
}
void xoy10()
{if(FM>=0) {XS=XS+STEP;YS=YS-STEP;FM=FM-fabs(YE)+XE;}
else { YS=YS-STEP;FM=FM+XE;}
}
void xoy11()
{XS=XS+STEP;YS=YS-STEP;}
void xoy12()
{if(FM>=0) {XS=XS+STEP;FM=FM-fabs(YE);}
else {XS=XS+STEP;YS=YS-STEP;FM=FM-fabs(YE)+XE;}
}
void xoy13()
{ XS=XS+STEP;}
void xoy14()
{ YS=YS+STEP; }
void xoy15()
{ XS=XS-STEP; }
void xoy16()
{ YS=YS-STEP; }
void __fastcall TForm1::FormPaint(TObject *Sender) /*主函數(shù)*/
{
Canvas->Pen->Color=clBlack; /*畫相對(duì)坐標(biāo)原點(diǎn)(160,160)*/
Canvas->MoveTo(10,160);Canvas->LineTo(310,160);
Canvas->MoveTo(160,10);Canvas->LineTo(160,310);
{ int k=0;
FILE *open; /*定義指向打開(kāi)文本的指針*/
FILE *yfp; /*定義指向存儲(chǔ)原直線文本的指針*/
FILE *fp; /*定義指明向存儲(chǔ)插補(bǔ)后直線文本的指針*/
char p[]="pline";
open=fopen("d:/line.txt","r");
fp=fopen("d:\\line_pro.scr","w");
fprintf(fp,"%s\n",p);
yfp=fopen("d:\\yuan_line.scr","w");
fprintf(yfp,"%s\n",p);
for(;;)
{if(!feof(open))
{if(k==0)
{fscanf(open,"%d,%d",&XS,&YS);
fprintf(yfp,"%d,%d\n",XS,YS);
fprintf(fp,"%d,%d\n",XS,YS);
fscanf(open,"%d,%d",&XE0,&YE0);
fprintf(yfp,"%d,%d\n",XE0,YE0);
k++;
}
else if(k!=0)
{XS=XE0,YS=YE0;
fscanf(open,"%d,%d",&XE0,&YE0);
if(feof(open)) break;
fprintf(yfp,"%d,%d\n",XE0,YE0);
}
}
if(feof(open)) break;
p_xs=XS+160; /*進(jìn)行坐標(biāo)轉(zhuǎn)換*/
p_ys=-YS+160;
p_xe=XE0+160;
p_ye=-YE0+160;
XE=XE0-XS,YE=YE0-YS;
Canvas->MoveTo(p_xs,p_ys); /*畫出起點(diǎn)相對(duì)坐標(biāo)*/
initial();/*初始化*/
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;
case 9:xoy9();break;
case 10:xoy10();break;
case 11:xoy11();break;
case 12:xoy12();break;
case 13:xoy13();break;
case 14:xoy14();break;
case 15:xoy15();break;
case 16:xoy16();break;
}
Canvas->LineTo(XS+160,-YS+160);
fprintf(fp,"%d,%d\n",XS,YS);
if((fabs(XS-XE0)<=STEP*1/2)&&(fabs(YS-YE0)<=STEP*1/2))
{ XE0=XS;YE0=YS; break;}/*判斷步數(shù)*/
}
}
fprintf(fp,"\n\n");fclose(fp);
fprintf(yfp,"\n\n");fclose(yfp);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -