永发信息网

C语言流星球的实现

答案:2  悬赏:30  手机版
解决时间 2021-03-24 00:36
  • 提问者网友:呐年旧曙光
  • 2021-03-23 15:18
目的与要求:目的是让读者掌握三个重要的图形函数imagesize` getimage putimage,及它们在动画制作过程中的具体应用。基本要求:程序正确运行;写出详细设计说明书。创新要求:在基本要求达到后,进行创新设计,如星球的特定轨道运行等。设计方法与基本原理:1 问题描述本例演示了一非常优美的动画效果,当程序运行后,整个屏幕形成梨花式屏幕,中间有一个黄色的星球在不停地旋转,并发出红色的光,2 基本原理本例是一个综合性的实例,主要讲解动画的制作,其中用到了三个重要的图形函数imagesize` getimage putimage,它们的调用格式如下:unsined imagesize(int x1,int y1,int x2,inty2);void far getimage(int x1,int y1,int x2,int y2,void far*mapbuf);void far putimage(int x,int,y,void*mapbuf,int,op);这三个函数用与将屏幕上的图象复制到内存,然后再将内存中的图象送回到屏幕上。其作用分别如下。函数imagesize():测试左上角为(x1,y1)`右上角为(x2,y2)的图形屏幕区域内的全部内容需多少个字节,然后再给mapbuf分配一个所测数字节内存空间的指针。Getimage()函数:将上面区域内的图象保存在内存中。Putimage()函数:将图象输出到左上角为点(x,y)的位置上。其中getimage()函数中的参数op规定如何释放内存中的图象。
最佳答案
  • 五星知识达人网友:忘川信使
  • 2021-03-23 16:42
简易流星球动画程序:
#include
#include
#include
#include
#include
main()
{
void * ptr;
int gd=9,gm=2;
float i;

initgraph(&gd,&gm,"C:\\TC");
setactivepage(1);
setcolor(RED);
setfillstyle(1,14);
fillellipse(10,10,10,10);
ptr=malloc(imagesize(0,0,20,20));
getimage(0,0,20,20,ptr);
randomize();
setactivepage(0);
for(i=0;i<3000;i++)
putpixel(random(640),random(480),random(15));
for(i=0;i<6.28*4;i=i+0.005)
{

putimage(300+8*(cos(i)+i*sin(i)),240+6*(sin(i)-i*cos(i)),ptr,COPY_PUT);
putimage(300+8*(cos(i)+(i)*sin(i)),240+6*(sin(i)-(i)*cos(i)),ptr,COPY_PUT);
if(kbhit()) break;
delay(10);
}
getch();
closegraph();
}
全部回答
  • 1楼网友:思契十里
  • 2021-03-23 17:04
你好! 两种做法,一种是用数组做,只要下标逆序输出就行了。一种是楼下的知友写的,当成一个整数来做。#include void main(void) {int n,a[20], i= 0;printf("请输入个数:");scanf("%d",&n);for(i=0;i= 0; i--)printf("%d ", a[i]);printf("\n");} 仅代表个人观点,不喜勿喷,谢谢。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯