下载此文档

练习81 限星空.doc


文档分类:生活休闲 | 页数:约10页 举报非法文档有奖
1/10
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/10 下载此文档
文档列表 文档介绍
练****81无限星空本例知识点一句话讲解新学知识使用Graphics类画图像使用Math类产生随机数已学知识使用Thread类管理线程使用String类处理字符串一、练****具体要求本练****制作无限星空的实例。如图81-1所示,程序执行后,创建一个带有无限星空的面板,星星的位置是随机的。该面板可以响应用户操作,当在面板上按下鼠标并且左右旋转鼠标时,星空的轨迹将会跟随鼠标的旋转方向发生改变。二、程序及注释(1)编程思路:首先,本练****因为要制作无限星空的实例,所以首先要生成星星,这是通过自写的Star来实现的:在Star类里,通过函数publicvoidDraw(Graphicsg,doublerot)画出星星,通过函数publicvoidGrayMe(Graphicsg)为星星设置颜色,分别为灰色,浅灰色和白色。为实现星星的移动,所以要编写主类StarField,先通过语句Starpol[]生成一个数组,然后在StarField的构造函数里,通过pol[i]=newStar(Width,Height,100,type)语句的循环,生成了无限星空。为控制星星的运行,所以在publicvoidrun()函数中,通过坐标改变和线程睡眠的技术完成此项功能。(2)程序实现及注释://.*;//star类classStar{ int H,V; int x,y,z; int type;//构造函数 Star(intwidth,intheight,intdepth,inttype) { =type; H=width/2; V=height/2; x=(int)(()*width)-H; y=(int)(()*height)-V; if((x==0)&&(y==0))x=10; z=(int)(()*depth); }//画星星函数 publicvoidDraw(Graphicsg,doublerot) { double X,Y; int h,v,hh,vv; int d; z-=2; if(z<-63)z=100; hh=(x*64)/(64+z); vv=(y*64)/(64+z); X=(hh*(rot))-(vv*(rot)); Y=(hh*(rot))+(vv*(rot)); h=(int)X+H; v=(int)Y+V; if((h<0)||(h>(2*H)))z=100; if((v<0)||(v>(2*H)))z=100; GrayMe(g); if(type==0) { d=(100-z)/50; if(d==0)d=1; (h,v,d,d); } else { d=(100-z)/20; (h-d,v,h+d,v); (h,v-d,h,v+d); if(z<50){ d/=2; (h-d,v-d,h+d,v+d); (h+d,v-d,h-d,v+d); } } } //设置颜色函数 publicvoidGrayMe(Graphicsg) { if(z>50) {

练习81 限星空 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数10
  • 收藏数0 收藏
  • 顶次数0
  • 上传人weizifan339913
  • 文件大小33 KB
  • 时间2019-11-17