资源简介

用c++模拟直线插补和圆弧插补实例一 http://blog.csdn.net/z893345329/article/details/25922857

资源截图

代码片段和文件信息

#include 
#include 
#include //调用绝对值函数
#include 
using namespace std;
void main()
{

int Nxyxeyex0y0xi=0yi=0FMF;
int xyFeshunrr=NULL;//rr为半径的平方
int a1a2b1b2;
int i=1;

initgraph(600600);

    //circle(320 240 50);        // 画圆
    line(5 595550 595);    // 画线 x轴
line(3 596550 596);    // 画线 x轴加粗
line(3 594550 594);    // 画线 x轴加粗
line(550 595535585);    // 画线 x轴方向
    line(5 50 5 595);    // 画线 y轴
line(4 50 4 596);    // 画线 y轴加粗
line(3 50 3 597);    // 画线 y轴加粗
line(5 50 15 65);    // 画线 y轴方向
//line(50 50 50 550);    // 画线
line(50 580 50 595);    // 画线 横坐标
line(100 580 100 595);    // 画线 横坐标
line(150 580 150 595);    // 画线 横坐标
line(200 580 200 595);    // 画线 横坐标
line(250 580 250 595);    // 画线 横坐标
line(300 580 300 595);    // 画线 横坐标
line(350 580 350 595);    // 画线 横坐标
line(400 580 400 595);    // 画线 横坐标
line(450 580 450 595);    // 画线 横坐标
line(500 580 500 595);    // 画线 横坐标

//line(5 595550 595);    // 画线 纵坐标
line(5 55020 550);    // 画线 纵坐标
line(5 50020 500);    // 画线 纵坐标
line(5 45020 450);    // 画线 纵坐标
line(5 40020 400);    // 画线 纵坐标
line(5 35020 350);    // 画线 纵坐标
line(5 30020 300);    // 画线 纵坐标
line(5 25020 250);    // 画线 纵坐标
line(5 20020 200);    // 画线 纵坐标
line(5 15020 150);    // 画线 纵坐标
line(5 10020 100);    // 画线 纵坐标





    //line(50 550 550 550);    // 画线
    //line(50 50 50 550);    // 画线
//line(10105050);
// line(a1a2b1b2);

//第一步
x0=50;y0=100;

xe=300;ye=200;
cout<Nxy =abs( (xe - x0)) + abs((ye - y0));

xi = x0;//xy分别存放实时的坐标
yi = y0;//
//FM =xe*yi-xi*ye;

while(Nxy!=0)
{Sleep(5);//休眠5毫秒//暂停5ms
FM =(xe-x0)*(yi-y0)-(xi-x0)*(ye-y0);
if(xe-x0==0){}
else if((ye-y0)/(xe-x0)<0)//调整斜率
FM=FM*(-1);
if(FM >= 0 )
{
//F=FM-ye;
if(xe-x0==0){
if(ye-y0>0)
yi=yi+1; //Y正向走步程序
else if(ye-y0<0)
yi--;//Y负向走步程序
//cout< }

else if(xe-x0>0)
xi=xi+1; //X正向走步程序
else if(xe-x0<0)
xi--;//X负向走步程序
//cout< }
else
{
//F=FM+xe;
if(ye-y0>0)
yi=yi+1; //Y正向走步程序
else if(ye-y0<0)
yi--;//Y负向走步程序


}

b1=xi;b2=yi;
if(i==1){
a1=b1;a2=b2;
}

line(a1(600-a2)b1(600-b2));//line(a1a2b1b2);
a1=b1;a2=b2;
cout< Nxy--;
i++;
}


//第二步

cout< i=1;
xe=400;ye=300;
x0=300;y0=200;
x=400;y=200;
rr=(xe-x)*(xe-x)+(ye-y)*(ye-y);
shun=1;
  xi=x0;yi=y0;//起点赋给xiyi

while(xi!=xe||yi!=ye)//没有到达终点时
{Sleep(5);//休眠5毫秒//暂停5ms
Fe=(xi-x)*(xi-x)+(yi-y)*(yi-y)-rr;
//cout<<“Fe:“<

评论

共有 条评论