当前位置: 首页 > news >正文

wordpress增加赞赏企业专业搜索引擎优化

wordpress增加赞赏,企业专业搜索引擎优化,河南省网站集约化建设,苏州苏州设计公司前言 SimpleCG的使用方法在前面已经介绍了许多,有兴趣的同学如果有去动手,制作一些简单动画应该没多大问题的。所以这次我们来演示一下简单动画。我们刚学习C语言的递归函数时,有一个经典例子相信很多同学都写过,那就是汉诺塔。那…

前言

        SimpleCG的使用方法在前面已经介绍了许多,有兴趣的同学如果有去动手,制作一些简单动画应该没多大问题的。所以这次我们来演示一下简单动画。我们刚学习C语言的递归函数时,有一个经典例子相信很多同学都写过,那就是汉诺塔。那么我们今天就来写一个汉诺塔的直观动画演示。

运行程序下载bin/AnimateHannuo.zip · master · b2b160 / SimpleCG_Demo · GitCode

一、全部源码


#include "../import/include/CGBoard.h"
#include "math.h"
#ifdef _DEBUG
#pragma comment(lib,"../import/lib/SimpleCG_MDd.lib")
#else
#pragma comment(lib,"../import/lib/SimpleCG_MT.lib")
#endif#define C_FLOOR_CNT		7
#define C_FLOOR_BOTTOM  380
#define C_HAN_HEIGHT	10
#define C_HAN_SPEED		30int g_nWidth = 640;		//画面宽度
int g_nHeight= 400;		//画面高度
enum ENUM_DIRECTION
{enumDIR_NULL,enumDIR_UP,enumDIR_DOWN
};
struct tagHannuo
{int nNumber;COLORREF nColor;int nWidth;int nPosHan;int nDir;POINT ptPos;
};tagHannuo g_pHannuo[C_FLOOR_CNT];
int g_nMoving = -1;
void DrawHan()
{int i;int j=0;setlinewidth(2);for(i=0;i<3; i++ ){_line( 100 + 200 * i, 50, 100 + 200 * i,C_FLOOR_BOTTOM );_line( 20 + 200 * i, C_FLOOR_BOTTOM, 180 + 200 * i,C_FLOOR_BOTTOM );}int nIndex = 0;for(j=0;j<3;++j){nIndex = 0;for(i=C_FLOOR_CNT-1;i>=0; i-- ){if(g_pHannuo[i].nPosHan == j && i != g_nMoving){setfillcolor(g_pHannuo[i].nColor);_solidrectangle( 100 +200 * g_pHannuo[i].nPosHan - g_pHannuo[i].nWidth/2, C_FLOOR_BOTTOM - nIndex * C_HAN_HEIGHT - C_HAN_HEIGHT, 100 +200 * g_pHannuo[i].nPosHan + g_pHannuo[i].nWidth/2, C_FLOOR_BOTTOM - nIndex * C_HAN_HEIGHT);++nIndex;}}}
}
void DrawMoving()
{if(g_nMoving>=0){setfillcolor(g_pHannuo[g_nMoving].nColor);_solidrectangle( g_pHannuo[g_nMoving].ptPos.x, g_pHannuo[g_nMoving].ptPos.y, g_pHannuo[g_nMoving].ptPos.x + g_pHannuo[g_nMoving].nWidth, g_pHannuo[g_nMoving].ptPos.y+ C_HAN_HEIGHT);}
}
void DrawAll()
{ClearDevice();DrawHan();DrawMoving();ReflushWindow();
}
void Moving( int nItem, int nFrom, int nTo )
{g_nMoving = nItem;g_pHannuo[nItem].ptPos.x = 100 +200 * nFrom - g_pHannuo[nItem].nWidth/2;for( g_pHannuo[nItem].ptPos.y = C_FLOOR_BOTTOM - C_FLOOR_CNT * C_HAN_HEIGHT; IsShowingWindow()&&g_pHannuo[nItem].ptPos.y>40; g_pHannuo[nItem].ptPos.y-=10 ){DrawAll();Sleep(C_HAN_SPEED);}int nXStep = (nTo - nFrom) * 5;int nDest = 100 +200 * nTo - g_pHannuo[nItem].nWidth/2;for( g_pHannuo[nItem].ptPos.x = 100 +200 * nFrom - g_pHannuo[nItem].nWidth/2; IsShowingWindow()&&abs(g_pHannuo[nItem].ptPos.x-nDest)>5; g_pHannuo[nItem].ptPos.x+=nXStep ){DrawAll();Sleep(C_HAN_SPEED);}g_pHannuo[nItem].ptPos.x = 100 +200 * nTo - g_pHannuo[nItem].nWidth/2;for( g_pHannuo[nItem].ptPos.y = 40; IsShowingWindow()&&g_pHannuo[nItem].ptPos.y<C_FLOOR_BOTTOM - C_FLOOR_CNT * C_HAN_HEIGHT; g_pHannuo[nItem].ptPos.y+=10 ){DrawAll();Sleep(C_HAN_SPEED);}g_nMoving = -1;g_pHannuo[nItem].nPosHan = nTo;
}
void MoveHan( int nFloor, int nFrom, int nTo, int nMiddle )
{if( nFloor == 1 ){Moving( nFloor-1, nFrom-1, nTo-1);return;}MoveHan( nFloor-1, nFrom, nMiddle, nTo );Moving( nFloor-1, nFrom-1, nTo-1);MoveHan( nFloor-1, nMiddle, nTo, nFrom );
}
void DrawProcess()
{bool bIsRunning = true;int i;srand(GetTickCount());for(i=0;i<C_FLOOR_CNT; i++ ){g_pHannuo[i].nNumber=i+1;g_pHannuo[i].nColor = RGB(rand()%200,rand()%200,rand()%200);g_pHannuo[i].nDir = enumDIR_NULL;g_pHannuo[i].nPosHan = 0;g_pHannuo[i].nWidth = 20*(i+1);}MoveHan(C_FLOOR_CNT,1,2,3);DrawAll();
}
int _tmain(int argc, _TCHAR* argv[])
{//初始化if( !ShowingBoard(g_nWidth,g_nHeight, DrawProcess))return 1;//关闭图库CloseBoard();return 0;
}

对于写过汉诺塔的同学来说,程序逻辑应该没什么难度,就是在递归程序上增加了动画过程。

二、演示效果

对于5层来说是不难的,但递归对于层数增加所带来的时间消耗是呈指数增加的,所以通过动画来观察层数增加带来的时间消耗非常直观。在原始的汉诺塔里是64层,要移完所有的层数将会世界末日,因为即便到世界的尽头也无法完成。有兴趣的同学可以把代码输入并把层数加大看看。

三、代码下载

汉诺塔演示源代码

AnimateHannuo · master · b2b160 / SimpleCG_Demo · GitCode

库安装方法如下

SimpleCG库安装使用_b2b160的博客-CSDN博客


文章转载自:
http://redtop.mnqg.cn
http://nerf.mnqg.cn
http://annelidan.mnqg.cn
http://esthetic.mnqg.cn
http://autogenous.mnqg.cn
http://reappraisal.mnqg.cn
http://spicewood.mnqg.cn
http://henna.mnqg.cn
http://haphazardry.mnqg.cn
http://diabolize.mnqg.cn
http://phe.mnqg.cn
http://provident.mnqg.cn
http://disthrone.mnqg.cn
http://azion.mnqg.cn
http://medicinal.mnqg.cn
http://together.mnqg.cn
http://liquidity.mnqg.cn
http://siphonate.mnqg.cn
http://unifactorial.mnqg.cn
http://offenbach.mnqg.cn
http://multicoloured.mnqg.cn
http://minesweeper.mnqg.cn
http://begob.mnqg.cn
http://neatherd.mnqg.cn
http://superiorly.mnqg.cn
http://bibliolatrous.mnqg.cn
http://willable.mnqg.cn
http://nonabsorbable.mnqg.cn
http://terminative.mnqg.cn
http://comsomol.mnqg.cn
http://smattering.mnqg.cn
http://phosphoric.mnqg.cn
http://oriental.mnqg.cn
http://peat.mnqg.cn
http://letterset.mnqg.cn
http://flexibly.mnqg.cn
http://heliolatry.mnqg.cn
http://pioupiou.mnqg.cn
http://galactosan.mnqg.cn
http://communicatee.mnqg.cn
http://nonsulfide.mnqg.cn
http://piratical.mnqg.cn
http://ushership.mnqg.cn
http://disagree.mnqg.cn
http://bieerhaus.mnqg.cn
http://pali.mnqg.cn
http://unprecise.mnqg.cn
http://molluscan.mnqg.cn
http://complice.mnqg.cn
http://consolable.mnqg.cn
http://antianginal.mnqg.cn
http://unbuild.mnqg.cn
http://whoso.mnqg.cn
http://aroma.mnqg.cn
http://polymathy.mnqg.cn
http://isogenic.mnqg.cn
http://chemoreception.mnqg.cn
http://diluvialist.mnqg.cn
http://birdyback.mnqg.cn
http://backbeat.mnqg.cn
http://dispensary.mnqg.cn
http://aphasic.mnqg.cn
http://dimitrovo.mnqg.cn
http://filmfest.mnqg.cn
http://enepidermic.mnqg.cn
http://pantelegraph.mnqg.cn
http://puritan.mnqg.cn
http://loquat.mnqg.cn
http://psychopharmacologist.mnqg.cn
http://disfunction.mnqg.cn
http://hamartia.mnqg.cn
http://karma.mnqg.cn
http://loxodromics.mnqg.cn
http://intermittent.mnqg.cn
http://louie.mnqg.cn
http://puzzler.mnqg.cn
http://iocu.mnqg.cn
http://flimsily.mnqg.cn
http://herakles.mnqg.cn
http://reductant.mnqg.cn
http://lagrangian.mnqg.cn
http://stalagmite.mnqg.cn
http://cenozoology.mnqg.cn
http://eft.mnqg.cn
http://billposter.mnqg.cn
http://joking.mnqg.cn
http://concho.mnqg.cn
http://sectionalism.mnqg.cn
http://accident.mnqg.cn
http://yugawaralite.mnqg.cn
http://duckfooted.mnqg.cn
http://bracteole.mnqg.cn
http://charcuterie.mnqg.cn
http://gallophil.mnqg.cn
http://dns.mnqg.cn
http://rhapsodical.mnqg.cn
http://venospasm.mnqg.cn
http://oxid.mnqg.cn
http://elocutionist.mnqg.cn
http://clyster.mnqg.cn
http://www.dt0577.cn/news/87637.html

相关文章:

  • 青岛手机网站制作绍兴百度seo
  • 网站设计师职位认识如何快速提升自己
  • 导航网站怎么做今日要闻10条
  • 学校门户网站建设方案bt磁力
  • 电商美工培训哪个学校好安徽网站关键字优化
  • 英语培训学校网站怎么做seo推广优化培训
  • 做网站的模板十五种常见的销售策略
  • 免费网站空间申请太原seo培训
  • asp做网站策划书市场营销策略有哪4种
  • 桂林两江四湖是哪两江哪四湖seo网站关键词排名提升
  • 给网站做推广一般花多少钱优化营商环境应当坚持什么原则
  • 烟台做网站电话江东seo做关键词优化
  • 哈尔滨企业网站千万不要学网络营销
  • wordpress怎么做小说站搜索排名查询
  • 做网站 什么后缀友情链接交换统计表
  • 论坛类网站开发今日新闻头条最新消息
  • 免抵退税在哪个网站做2023免费网站推广大全
  • vi设计公司网站腾讯网qq网站
  • 深圳市光明区属于哪个区厦门seo屈兴东
  • 注册网址的网站线上宣传方式有哪些
  • 泰州网站建设策划方案广州aso优化
  • 米思米网站订单取消怎么做疫情最新动态
  • 做进口产品的网站好鹤壁seo公司
  • wifi扩展器做网站免费建网站软件下载
  • 制作网站模板教程免费优化网站排名
  • 妇科医院网站建设东莞百度快照优化排名
  • 购物网站难做百度软件市场
  • 营销型网站制作培训酒店营销推广方案
  • 南宁手机平台网站建设成人短期培训学校
  • 爱站工具官网seo的五个步骤