注册 登录
编程论坛 C图形专区

[原创]感觉弄这个比玩游戏爽

cdmalcl 发布于 2007-01-29 15:49, 1609 次点击

#include "stdio.h"
#include "conio.h"
#include "time.h"
#include "stdlib.h"
#include "graphics.h"
#include "math.h"

#define PI 3.14

main()
{
float i ,j ,k = -2;
int gd=DETECT ,gm;
int Mx ,My , xd = 1, yd = 1 ,kd = 1 ,cr = 1 ,cd = 1;
float x = 0 ,y = 0 ,xm = 0 ,ym = 0;

initgraph(&gd ,&gm ,"");

Mx = getmaxx()/2;
My = getmaxy()/2;

while(!kbhit())
{
for(i = 0;i < PI;i+=0.05)
{
for(j = 0;j < PI ;j+=0.05)
{
x = cos(i+k)*30*j+Mx+xm;
y = sin(j+k)*30*i+My+ym;

putpixel(x ,y ,cr);

}
}
xd = (xm > 200)? -1: xd;
xd = (xm < -200)? 1: xd;

yd = (ym > 250)? -1: yd;
yd = (ym < -250)? 1: yd;

kd = (k > PI*2)? -1: kd;
kd = (k < -PI*2)? 1: kd;

cd = (cr > 11)? -1: cd;
cd = (cr < 5)? 1: cd;

k += 0.1*kd;
xm += 2*xd;
ym += 2*yd;
cr += 4*cd;

delay(10000);
cleardevice();
}
getch();
}



写的有点乱

[此贴子已经被作者于2007-1-29 15:56:21编辑过]

18 回复
#2
cdmalcl2007-02-01 18:18

#include "stdio.h"
#include "conio.h"
#include "time.h"
#include "stdlib.h"
#include "graphics.h"
#include "math.h"

#define PI 3.14

main()
{
float i ,j ,k = -2;
int gd=DETECT ,gm;
int Mx ,My , xd = 1, yd = 1 ,kd = 1 ,cr = 2 ,cd = 1;
float x = 0 ,y = 0 ,xm = 0 ,ym = 0;

initgraph(&gd ,&gm ,"");

Mx = getmaxx()/2;
My = getmaxy()/2;

while(!kbhit())
{
for(i = 0;i < PI;i+=0.05)
{
for(j = 0;j < PI ;j+=0.05)
{
x = cos(2*i+k)*30*j+Mx+xm;
y = sin(2*j+k)*30*i+My+ym;

putpixel(x ,y ,cr);

}
}
xd = (xm > 200)? -1: xd;
xd = (xm < -200)? 1: xd;

yd = (ym > 250)? -1: yd;
yd = (ym < -250)? 1: yd;

kd = (k > PI*4)? -1: kd;
kd = (k < -PI*4)? 1: kd;
/*
cd = (cr > 11)? -1: cd;
cd = (cr < 5)? 1: cd;
*/
k += 0.1*kd;
xm += 2*xd;
ym += 2*yd;
/* cr += 4*cd; */

delay(10000);
cleardevice(); /* 感觉图片有点闪就把这个地方改为定点覆盖就行 */
}
getch();
}

[此贴子已经被作者于2007-2-1 18:22:27编辑过]

#3
cdmalcl2007-02-01 18:24

for(j = 0;j < PI ;j+=0.05)
{
x = cos(3*i+k)*30*j+Mx+xm;
y = sin(3*j+k)*30*i+My+ym;

putpixel(x ,y ,cr);

}
}

把那个数改成其他的数有更好的效果

#4
田里兵蜂2007-02-01 18:25

哇,我运行了下,第二个图真好看
#5
cdmalcl2007-02-01 18:28

for(j = 0;j < PI ;j+=0.05)
{
x = cos(k*i/2+k)*30*j+Mx+xm;
y = sin(k*j/2+k)*30*i+My+ym;

putpixel(x ,y ,cr);

}

这么改也挺有意思

#6
cdmalcl2007-02-01 18:29
以下是引用田里兵蜂在2007-2-1 18:25:33的发言:

哇,我运行了下,第二个图真好看

终于有人理我拉

#7
卧龙孔明2007-02-01 19:57
支持!
#8
ba_wang_mao2007-02-02 08:55

以下是引用田里兵蜂在2007-2-1 18:25:33的发言:

哇,我运行了下,第二个图真好看

#9
Still_Linux2007-02-02 16:12
效果真不错 第二个很像WINDOWS的屏幕保护吖  今天研究一下!
#10
cdmalcl2007-02-02 17:10
这两个效果更好:

x = cos(2*i+k+j)*30*j+Mx+xm;
y = sin(2*j+k+i)*30*i+My+ym;


x = cos(2*i+k*j)*30*j+Mx+xm;
y = sin(2*j+k*i)*30*i+My+ym;
#11
cdmalcl2007-02-02 17:12
x = cos(i*3+k*j)*30*j+Mx+xm;
y = sin(j*3+k*i)*30*i+My+ym;
#12
cdmalcl2007-02-02 17:25

x = sin(j)*10+cos(i*3+k*j)*30*j+Mx+xm;
y = cos(i)*10+sin(j*3+k*i)*30*i+My+ym;

k=-3.3左右的时候好像很好看
明天再弄
#13
Still_Linux2007-02-02 20:42
还是最后一个效果酷啊~挺多效果呢 哈哈~!!~~数学真厉害吖!
#14
Bluefire0012007-02-03 09:43

先顶下!

#15
一笔苍穹2007-02-04 13:16
不错啊~
#16
delpiero2007-02-13 15:44
真顶 很不错啊  
#17
moonwalker2007-03-05 23:47

头一回来图形版,原来C可以做出这么好的图,我也准备开始学学图形喽!
希望GS们多多指导了!

#18
高达2007-03-12 23:29
大哥 我要学 太爽了
#19
programer2007-03-25 15:43
看了,的确不错!!学习啊!!
1