一个简单的一箭穿心程序


日期:
2005-8-29 0:45:00
来源:
C语言之家
作者:
张跃华
编辑
vivian
一个简单的一箭穿心程序 

    其实这个程序也不难,只要用心形线方程(1-ρ×cosθ)来绘图就可以了。 

    作者:张跃华             学校:云南农业大学 

程序如下: 

#include<graphics.h> 
#include<math.h> 

#define FNX(x1) (int)(x+(x1)*sl) 
#define FNY(y1) (int)(MAXY-(y+(y1)*sl)) 
#define R(theta) 1-pow(cos(1*theta),1) 

int sl=50,MAXY; 
float x1,y1,xs,ys,r,theta; 
/*画心*/ 
void draw(int x,int y) 

 for(theta=0;theta<2*3.14;theta+=0.01) 
 {r=R(theta); 
  x1=r*sin(theta);y1=r*cos(theta); 
  xs=FNX(x1);ys=FNY(y1); 
  if(theta==0)moveto(xs,ys);else lineto(xs,ys); 
 } 


/*画箭头*/ 
void jian() 

 line(205,235,200,240); 
 line(200,240,205,245); 
 line(200,240,214,240); 
 line(400,240,500,240); 
 line(485,235,480,240); 
 line(480,240,485,245); 
 line(490,235,485,240); 
 line(485,240,490,245); 
 line(495,235,490,240); 
 line(490,240,495,245); 
 line(500,235,495,240); 
 line(495,240,500,245); 
 line(505,235,500,240); 
 line(500,240,505,245); 
 line(485,235,505,235); 
 line(485,245,505,245); 

/*主程序*/ 
main() 
{int driver=DETECT,mode; 
 initgraph(&driver,&mode,""); 
 setbkcolor(1); 
 setcolor(4); 
 MAXY=getmaxy(); 
 draw(280,280);/*左心*/ 
 draw(370,280);/*右心*/ 

此文共有2页 上一页 1 2 下一页

关闭窗口

   兆联特别申明
1)除本站特殊规定外,本站所有信息均不拥有版权,仅供学习参考!
2)站内大部分内容注明出处及详细信息,版权归作者所有!如果您觉得不妥请及时与我站联系,我们将立即删除。
3)本站提供的资料您只有阅读权,并不等于您得到文章的所有权,本站反对将我站提供的资料直接使用。