| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付赛孚耐:软件保护加密专家
身份认证令牌USB KEY   
共有 3321 人关注过本帖
标题:[原创]一个方程实现液体下流效果
收藏  订阅  推荐  打印 
cdmalcl
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:19
帖子:3743
积分:38348
注册:2005-9-23
[原创]一个方程实现液体下流效果

#include<stdio.h>
#include<math.h>
#include<graphics.h>
#define PI 3.14
int main()
{
float i ,j ,x ,y;
int MAXX2 ,MAXY2;
int gd = DETECT,gm = 0;

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

MAXX2 = getmaxx()/2;
MAXY2 = getmaxy()/2;

setcolor(15);
setfillstyle(1 ,2);

for(j = 0;j < MAXY2*2;j+=40)
{
rectangle(1 ,j ,i+39 ,j+21);
for(i = 0;i < MAXX2*2;i+=40)
{
rectangle(i ,j+1 ,i+39 ,j+20);
floodfill(i+3 ,j+3 ,getcolor());
rectangle(i+20 ,j+21 ,i+59 ,j+40);
floodfill(i+23 ,j+23 ,getcolor());
}
rectangle(21 ,j+21 ,i+59 ,j+41);
floodfill(3 ,j+23 ,getcolor());
}

for(i = -3*PI-1;i < 0;i +=0.005)
{
for(j = -4*PI;j < 4*PI;j += 0.01)
{
x = cos(i*2+j)*20+j*30;
y = sin(i-j*2)*20+i*30*sin(i/2)+sin(x/25)*30;

putpixel(x+MAXX2 ,y+MAXY2 ,4);

if(kbhit())
exit(0);
}
}
getch();
}

搜索更多相关主题的帖子: 方程  液体  效果  
2007-4-30 18:37
奔跑的鸟
Rank: 3Rank: 3
等级:中级会员
帖子:360
积分:4296
注册:2006-1-20

8错,很强大

简单的快乐着~
2007-5-1 20:40
hutogo007
Rank: 1
等级:新手上路
帖子:7
积分:170
注册:2007-5-1

非等闲之辈能写得出的..
2007-5-2 23:31
一笔苍穹
Rank: 4
等级:高级会员
帖子:641
积分:6734
注册:2006-5-25

很有意思,加个精,希望以后有更多这样的程序帖上来~~
2007-5-3 20:24
卧龙孔明
Rank: 12Rank: 12Rank: 12
等级:版主
威望:53
帖子:3732
积分:39392
注册:2006-10-13

great!

为了中国软件工业的未来,有爱心的朋友请不要帮忙代做作业,或者至少是收费服务!如果您不需要钱,或者您不愿收费用于自己,请把收取的钱用于支援山区贫困学生…谢谢大家!
2007-5-4 08:46
蔡蔡
Rank: 3Rank: 3
等级:中级会员
帖子:193
积分:2064
注册:2007-5-8

高手~~~~我无话说~~~~

从不撒谎,却常常骗人。 自认不笨,却热衷装傻。
2007-5-8 12:50
china008
Rank: 2
等级:注册会员
帖子:75
积分:858
注册:2007-5-8


2007-5-12 08:01
zj860713
Rank: 1
等级:新手上路
帖子:13
积分:230
注册:2007-3-16

楼主,小弟不太理解上面的这段代码是怎么实现那种作图的,画点函数我知道,你能给我点注释吗?
for(i = -3*PI-1;i < 0;i +=0.005)
{
for(j = -4*PI;j < 4*PI;j += 0.01)
{
x = cos(i*2+j)*20+j*30;
y = sin(i-j*2)*20+i*30*sin(i/2)+sin(x/25)*30;

putpixel(x+MAXX2 ,y+MAXY2 ,4);

if(kbhit())
exit(0);
}
}
我的邮箱www.me860713@163.com

2007-5-24 18:00
yang667455
Rank: 1
等级:新手上路
帖子:17
积分:270
注册:2007-5-13

楼主历害.请问你是怎么想到用
for(j = 0;j < MAXY2*2;j+=40)
{
rectangle(1 ,j ,i+39 ,j+21);
for(i = 0;i < MAXX2*2;i+=40)
{
rectangle(i ,j+1 ,i+39 ,j+20);
floodfill(i+3 ,j+3 ,getcolor());
rectangle(i+20 ,j+21 ,i+59 ,j+40);
floodfill(i+23 ,j+23 ,getcolor());
}
rectangle(21 ,j+21 ,i+59 ,j+41);
floodfill(3 ,j+23 ,getcolor());
}
画出背景,而用

for(i = -3*PI-1;i < 0;i +=0.005)
{
for(j = -4*PI;j < 4*PI;j += 0.01)
{
x = cos(i*2+j)*20+j*30;
y = sin(i-j*2)*20+i*30*sin(i/2)+sin(x/25)*30;

putpixel(x+MAXX2 ,y+MAXY2 ,4);

if(kbhit())
exit(0);
}
}

画出流体的哪?

我就算能想出程序运行的样子,可却不能想出怎么用数学表达式来表现效果.

2007-6-7 19:12
wrrlcmnyj
Rank: 1
等级:新手上路
帖子:9
积分:118
注册:2007-6-13

好强呀!


附件: 只有本站会员才能下载或查看附件,请您 登录注册
2007-6-17 16:54
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.089659 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved