五边形信息图表绘制方法
在网络科技发展进步的当下,原来一些传统的统计图表都有了进一步的创新。以前企业的PPT都依赖微软的各应用软件来制作图表,现时企业的PPT展示的图表应用不再满足于原来的图表绘制方法,进而使用一些第三方应用软件来制作新颖漂亮的图表。由此而有许多图表制作的应用软件面市。这些图表很吸引眼球,我对此也很感兴趣,故试着写了一些各种式样图表的绘制方法,供有同好的同行参考和评论。
新样式的统计图除了有复合式,堆叠式,展开式等等,还加入了新的概念,新的形式。新的名称是信息图表,把各种需要表达的东西,如理念含义,样本值的数量,统计的目的,多重信息等等用图像图表图案组合起来,展现给受众。此类信息图主要是表达,展示和传播。在美工艺术方面创意创新,有许多独到新颖的样式,给人一个赏心悦目的感受。
在统计图表的样本值的计算方面,样本值的量的表现是一个方面,重点是量的对比,以及量的表现方法,这是体现统计图表目的的主要意义。
今在此提供一种新颖漂亮的信息图表的绘制方法,对于统计样本数据使用者自行添加。
如何绘制五边形,各个能绘画的应用程序和编程语言都有自己的方法,然而由于我喜欢动脑,喜欢电脑绘画,就会设计一些自己的方法。在设计绘制方法时因为要多次绘制五边形,故写了个通用函数Pentagon () 。
今给大家分享一个中心是五角星的五边形信息图表的绘制方法,供大家参考。
本方法采用C语言的最基本功能:
( 1) 绘图功能画线,画圆,画矩形。
(2) 界面美工设计,界面文字打印输出。
代码中有详细的注释,通俗易懂,一看就会。
源码如下:(附图)
//*************************
//创意艺术正五边形信息图表绘制方法
drawPentagon1 (){ //中心为五角星形
cs.ClearDraw (0,src); //清屏
clearOutput();
cs.SetFillMode (1);//0不填色,1填色
cs.SetColor (255,230,250,250);
cs.DrawRect (0,2,720,880); //back board
cs.SetColor (255,140,140,140);
cs.DrawRect (24,24,706,806); //back
cs.SetColor (255,250,250,250);
cs.DrawRect (20,20,700,800); //back
cs.SetFillMode (0);//0不填色,1填色
cs.SetColor (255,0,0,250);
cs.DrawRect (20,20,700,800); //back
cs.DrawRect (26,25,694,795); //back
// 正五边形绘制
cs.SetFillMode (1);//0不填色,1填色
cs.SetStrokeWidth(2); //线
dx=360 ; dy=360 ; //center
L1=200 ; Ls=124 ; //12点钟方向
cs.SetFillMode (0);//0不填色,1填色
for (i=0; i<=200; i++){ //中心五角星
cr=250-i; cg=i+50; cb=100; //渐变色
cs.SetColor(255,cr, cg, cb);
cs.DrawCircle (dx,dy, i); }
//**** draw five Pentagon *****
cs.SetFillMode (1);//0不填色,1填色
d=72+90 ; //d +90 , 12点钟方向
for (i=0; i<=4; i++){
ma=pi/180*i*72+pi/180*90 ;
x0=(float)(L1*cos(ma))+dx ;
y0=(float)(L1*sin(ma))+dy ;
kn=(int)Ls ; x=x0; y=y0; //set steps
for (n=0; n<=kn; n++){ //fill pentagon
cs.SetColor(255,200,250,250); //set fill color
Ls=n;
Pentagon (); }
cs.SetColor(255,250,150,0); //套框线
Pentagon (); }
//打印标号
cs.SetTextStyle (1);
for (n=0; n<=4; n++){ //draw 标号
ma=pi/180*n*72+180 ;
d=n*72+90; Ls=124;
x5=(float)(130*cos(ma))+dx ;
y5=(float)(130*sin(ma))+dy ;
cs.SetColor(255,250,200,0);
cs.DrawCircle (x5,y5,31) ;
cs.SetColor(255,0,250,250);
cs.DrawCircle (x5,y5,29) ;
cs.SetTextSize (36);
cs.SetColor(255,150,80,220);
ss="0"+intToString (n+1);
cs.DrawText (ss, x5-20 ,y5+12 ) ; }
cs.SetTextSize (38);
cs.DrawText ("🏘",222,140) ;
cs.DrawText ("🍎",455,140) ;
cs.DrawText ("📚",110,410) ;
cs.DrawText ("🚑",560,410) ;
cs.DrawText ("🔬",340,620) ;
cs.SetTextSize (30);
cs.DrawText ("房产 ", 180,200) ;
cs.DrawText ("生活 ", 420,200) ;
cs.DrawText ("教育 ", 110,470) ;
cs.DrawText ("医疗 ", 490,470) ;
cs.DrawText ("工作 ", 300,570) ;
cs.DrawText ("45% ", 250,200) ;
cs.DrawText ("20% ", 490,200) ;
cs.DrawText ("14% ", 175,470) ;
cs.DrawText ("11% ", 560,470) ;
cs.DrawText ("10% ", 370,570) ;
cs.SetTextSize (50);
cs.SetColor(255,250,250,250);
cs.DrawText ("👪",330,330) ;
cs.DrawLine (295,382,425,382);
cs.SetTextSize (24);
cs.DrawText ("Infographics",290,370) ;
cs.DrawText ("2024 ", 335,410) ;
//题标: 艺术立体字制作
cs.SetFillMode (1);//0不填色,1填色
cs.SetTextStyle (1);
cs.SetStrokeWidth(1);
cs.SetTextSize (28);
cs.SetColor(255,0,0,250);
cs.DrawText ("Infographics 📊",480,60) ;
cs.SetTextSize (42);
ss="创意艺术图:五边形艺术图" ;
cs.SetColor(255,50,120,20); //立体字
cs.DrawText (ss,114,734); //阴影
cs.SetColor(255,0,250,0);
cs.DrawText (ss,110,730); //本字
cs.SetFillMode (0);//0不填色,1填色
cs.SetColor(255,250,150,0);
cs.DrawText (ss,110,730); //框线
cs.Update ();
}//drawPentagon1 ()
Pentagon (){ //正五边形绘制方法通用函数
// a=pi/180*i*72 ; 或a=pi/180*i*2 ; > 画五角星
//d=0 >3点钟, d=180 >9点钟 ,d=90 >12点钟
//d=270 >6点钟
//x, y 坐标,Ls=Length, d=Degree 起点
//绘制的方法是圆内切五边形,为方便我不计算证明,直接以半径来代替边长了。我的目的是图形,不是如CAD的需要精确计算。
//4个参数 ( flaot x, y, L ; int d ; )
a=pi/180-pi/180*d ;
x3=(float)(Ls*cos(a))+x ; //起始0点
y3=(float)(Ls*sin(a))+y ;
// cs.DrawCircle(x3,y3,1); //此点可加
x5=x3 ; y5=y3 ;
for (m=1; m<=4; m++){ //五边点后4点位
a=pi/180*m*72-pi/180*d ;
x4=(float)(Ls*cos(a))+x ;
y4=(float)(Ls*sin(a))+y ; //顺时针
// cs.DrawCircle(x4,y4,1); //此点可加
cs.DrawLine (x5,y5,x4,y4); //连线
x5=x4; y5=y4 ; }
cs.DrawLine (x5,y5,x3,y3); //连线0点
}//Pentagon ()
//**** END *****************