资源简介
用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:“<
- 上一篇:用C++模拟直线插补图形
- 下一篇:用c++模拟直线插补和圆弧插补二.cpp
相关资源
- 用c++模拟直线插补和圆弧插补二.cpp
- 用C++模拟直线插补图形
- 银行借贷系统c++ 编程
- 《C++ Primer Plus第6版中文版》源代码和
- 一个老师给的高斯投影正、反算c++源
- 物业管理系统c++ 课程设计源码
- WindowsCE或WM上C++加载显示GIF动画的程序
- 获取系统安装软件(vc++源码)
- C++ Primer Plus 6th 编程练习答案
- 用VC++实现图像连通区域标记
- C/C++语言实现求矩阵的广义逆
- 基于C++ builder 的文件传输代码
- 多边形拓扑关系算法C++程序
- VC6.0下开发的仿windows记事本-达尔魔记
- LZ77、LZ78对文件编译码
- 图像Susan角点检测算法代码非常稳健的
- microphone.zip
- c++实现ftp list所有文件与目录 & ftp d
- 置换密码的c++实现程序
- C++实现TIN
- c++模拟进程 解决c++中的难题
- C++ AVI播放器
- 自适应霍夫曼编码(C++)
- C++网络聊天室程序
- 全国交通咨询模拟程序
- 实用Fourier变换及C++实现
- c++.win32.扫雷游戏代码
- 通讯录c++实现 功能:添加、删除、查
- 在VC++6.0中给对话框设置背景色或者背
- C++ MongoDB 连接池代码实现
评论
共有 条评论