旅游论坛网站建设,做企业网站的多少钱,网站开发视频播放好做吗,网站风格和功能设计方案在前一篇教程我们利用绘制矩形功能绘制了一个城市,接下来我们讲解另外一个同样重要且基础的图形----圆形。并一起看看该图形能绘制哪些应用呢。 绘制圆形相关函数如下#xff1a;
//圆心坐标(nXCenter,nYCenter),半径为nRatio//绘无填充制圆
void circle( int nXCenter, int … 在前一篇教程我们利用绘制矩形功能绘制了一个城市,接下来我们讲解另外一个同样重要且基础的图形----圆形。并一起看看该图形能绘制哪些应用呢。 绘制圆形相关函数如下
//圆心坐标(nXCenter,nYCenter),半径为nRatio//绘无填充制圆
void circle( int nXCenter, int nYCenter, int nRatio );//绘制填充圆
void fillcircle( int nXCenter, int nYCenter, int nRatio );//绘制无边框填充圆
void solidcircle( int nXCenter, int nYCenter, int nRatio );//清空圆
void clearcircle( int nXCenter, int nYCenter, int nRatio );
只要提供圆心坐标及半径长度即可与矩形一样提供了四个函数分别绘制
1、仅有边框无填充--circle
2、边框加填充--fillcircle
3、无边框仅有实心填充--solidcircle
4、用背景色清除圆区域--clearcircle
函数相对简单不过因为圆形在真实世界太普遍以及实用了所以在图形绘制中圆形显得尤为重要。
下面我们以绘制太极图来演示圆的绘制,之所以使用太极图是因为虽然他看似简单,实际蕴含丰富。充分反映了祖先的智慧同时也是完全使用圆形构造完成的。小小的太极图里包含了五个圆形。
绘制代码如下
// Circle.cpp : 定义控制台应用程序的入口点。
//#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_MD.lib)
#endifint g_nWidth 400; //画面宽度
int g_nHeight 400; //画面高度//绘制太极图
void DrawProcess()
{//外圆setfillcolor(0);circle(200,200,100);line(200,100,200,300);floodfill(250,200,0,0);//黑色半圆solidcircle(200,150,50);//设置填充色为白色setfillcolor(RGB(255,255,255));//白色半圆solidcircle(200,150,25);//小白圆solidcircle(200,250,50);//小黑圆setfillcolor(0);solidcircle(200,250,25);}
int _tmain(int argc, _TCHAR* argv[])
{srand(GetTickCount());//初始化if( !ShowingBoard(g_nWidth,g_nHeight, DrawProcess))return 1;//关闭图库CloseBoard();return 0;
}运行图如下 下面我们让太极图转动起来反映的是阴阳转化的关系。由于我们还没学到旋转的函数只能通过手动运算旋转点的方式编写代码如下
// Circle.cpp : 定义控制台应用程序的入口点。
//#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_MD.lib)
#endifint g_nWidth 400; //画面宽度
int g_nHeight 400; //画面高度
//旋转的太极图
void Taiji( int nX, int nY, int nRatio, float fAngle )
{int nPtX0;int nPtY0;nPtX cos(fAngle)*nRatio;nPtY sin(fAngle)*nRatio;//外圆circle(nX,nY,nRatio);line(nXnPtX,nY-nPtY,nX-nPtX,nYnPtY);floodfill(nX5*sin(fAngle),nY5*cos(fAngle),0,0);//黑色半圆solidcircle(nXnPtX/2,nY-nPtY/2,nRatio/2);//设置填充色为白色setfillcolor(RGB(255,255,255));//小白圆solidcircle(nXnPtX/2,nY-nPtY/2,nRatio/4);//白色半圆solidcircle(nX-nPtX/2,nYnPtY/2,nRatio/2);//小黑圆setfillcolor(0);solidcircle(nX-nPtX/2,nYnPtY/2,nRatio/4);
}//绘制太极图
void DrawProcess()
{bool bIsRunning true;float fAngle0;while(bIsRunning){Taiji(200,200,100,fAngle);fAngle0.05;Sleep(50);}
}
int _tmain(int argc, _TCHAR* argv[])
{//初始化if( !ShowingBoard(g_nWidth,g_nHeight, DrawProcess))return 1;//关闭图库CloseBoard();return 0;
}
为了绘制运动太极将太极绘制放入单独函数供调用而且设置了旋转角度参数方便绘制转动的太极。运行图与上图差别不大就不贴效果图了大家可以自行运行看看。
第二个例子我们展示一下奥运五环的绘制。绘制环可以先画一个圆然后在里面用clearcircle用小一点的半径清除掉里面就能得到一个环形不过我们可以用更简单的直接设置笔宽来实现。
setlinewidth(15);
关于设置笔宽及填充例如颜色大小之类的设置函数后面会讲到在这里先用上。
代码如下
// Circle.cpp : 定义控制台应用程序的入口点。
//#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_MD.lib)
#endifint g_nWidth 400; //画面宽度
int g_nHeight 400; //画面高度//绘制太极图
void DrawProcess()
{setlinewidth(15);setlinecolor(RGB(50,140,210));circle(60,100,50);setlinecolor(RGB(240,160,50));circle(120,150,50);setlinecolor(RGB(0,20,40));circle(180,100,50);setlinecolor(RGB(80,170,70));circle(240,150,50);setlinecolor(RGB(200,80,70));circle(300,100,50);
}
int _tmain(int argc, _TCHAR* argv[])
{//初始化if( !ShowingBoard(g_nWidth,g_nHeight, DrawProcess))return 1;//关闭图库CloseBoard();return 0;
}
运行效果图:
审核说版权不明不知道是不是这个就不放图片试试了 细心的读者可能会发现乍一看似乎还可以仔细看的话就会发现这个五环是有问题的因为环与环之间并不是扣在一起我们后面介绍到弧的绘制时再来完善它画圆函数是没办法实现的。
最后我们再用圆绘制一个小甲虫并祝大家节日快乐明天就是儿童节了。
// Circle.cpp : 定义控制台应用程序的入口点。
//#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_MD.lib)
#endifint g_nWidth 400; //画面宽度
int g_nHeight 400; //画面高度void DrawProcess()
{setlinewidth(3);//头setfillcolor(RGB(250,240,200));fillcircle(280,110,30);//身setfillcolor(RGB(250,40,10));fillcircle(200,200,100);fillcircle(285,115,8);curveline(270,130,200,140,4);curveline(200,140,210,100,-4);curveline(200,140,120,260,14);//斑点setfillcolor(0);solidcircle(170,130,25);solidcircle(220,170,30);solidcircle(280,180,10);solidcircle(260,230,25);solidcircle(140,200,30);solidcircle(180,250,25);solidcircle(180,180,10);solidcircle(220,260,10);//触角solidcircle(250, 70, 6);solidcircle(280, 60, 6);line(250, 70, 260, 85 );line(280, 60, 275, 80 );setfillcolor(RGB(250,240,200));solidcircle(282,108,9);//眼睛setfillcolor(0);solidcircle(270,110,6);solidcircle(290,100,6);
}
int _tmain(int argc, _TCHAR* argv[])
{//初始化if( !ShowingBoard(g_nWidth,g_nHeight, DrawProcess))return 1;//关闭图库CloseBoard();return 0;
}以上通过几个例子演示了圆形的绘制及运用大家可以参考并熟练圆形函数的应用发挥想象多多练习下一篇将探讨椭圆的绘制方法及使用。