提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|其它|编辑:郝浩|2010-10-14 14:53:55.000|阅读 2990 次
概述:TeeChart Pro ActiveX是西班牙Steema SL公司开发的图表类控件,主要用来生成各种复杂的图表。它是一款行业领先的图表及图形报表工具,它从1997年开始不断更新并响应客户的需求,目前已经成为全球最具竞争力的图表产品之一。本文主要讲解如何利用TeeChart动态绘制平面剖面图。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
TeeChart Pro ActiveX是西班牙Steema SL公司开发的图表类控件,主要用来生成各种复杂的图表。它是一款行业领先的图表及图形报表工具,它从1997年开始不断更新并响应客户的需求,目前已经成为全球最具竞争力的图表产品之一。TeeChart Pro提供几百种2D和3D图表样式,40种数学统计学函数及无限数量的轴和22种选项板控件供选择。它为每一个控件及子控件提供了强大且全面的编辑器,使用户可以快速创建综合性的图表应用程序。这个图表编辑器通过TeeCommander控件(一个拥有图表特效按钮的工具条)得到了增强,其具有一键访问TeeChart Editors及共享功能。另外这个图表编辑器可在设计时和运行时使用。TeeChart Pro完全面向对象,并分为多个模块,从而缩小了可执行文件的尺寸,并使开发者可以根据自己的需要创建自定义分组模块。
在工程上,常常要绘制平面等值线图、剖面图、表面图、平面剖面图等等,前三种图形可直接利用TeeChart绘制,而平面剖面图却不能直接绘制,本文简单介绍如何利用TeeChart动态绘制工程上的平面剖面图,其中编译环境为C++Builder 6.0,TeeChart版本为TeeChart.v8.01。(在安装C++ Builder6.0时并非此版本,用户可自行下载安装)。
首先新建一工程,在Form1上添加一个Panel,一个Chart,一个按钮和一个OpenDialog,去掉Chart的3D效果,将Panel的Align属性设为“alTop”,将Chart的Align属性设为“alClient”,将按钮的Caption设为“打开数据”,用以打开数据文件。如下图所示:
双击按钮,并在按钮的函数下写上如下代码:
#include "stdio.h"
int n=0;
void __fastcall TForm1::SpeedButton4Click(TObject *Sender)
{double maxvalue=-10000,minvalue=10000;
FILE *fp1;
int line,linetmp=-1;double value; float point;
TChartAxis *Axis;
TFastLineSeries *Series;
TColorLineTool *Tool;
if(OpenDialog1->Execute())
{ if((fp1=fopen(OpenDialog1->FileName.c_str(),"r"))!=NULL)
{ while(!feof(fp1))
{if(fscanf(fp1,"%d%f%lf",&line,&point,&value)!=EOF)
{ maxvalue=(value>maxvalue)?value:maxvalue;
minvalue=(value<minvalue)?value:minvalue;
if(line!=linetmp)
{
Axis=new TChartAxis(Chart1->CustomAxes);
Series=new TFastLineSeries(Chart1);
Chart1->AddSeries(Series);
Series->CustomVertAxis=Axis;
Tool=new TColorLineTool(Chart1);
Tool->Axis=Series->GetVertAxis ;
Tool->Pen->Color=clWhite;
Tool->AllowDrag=false;
Tool->Value=0;
Series->SeriesColor=(TColor)RGB(random(255),random(250),random(250));
Axis->LabelsFont->Color=clWhite;
Axis->Axis->Color=clWhite;
Series->AddXY(point,value,FloatToStr(point));
Series->Title="Line"+IntToStr(line);
linetmp=line;
n=n+1;
}
else Series->AddXY(point,value,FloatToStr(point));
}
}
fclose(fp1);
for(int i=0;i<n;i++)
{Chart1->Series[n-i-1]->CustomVertAxis->StartPosition=(int)(100*i/n);
Chart1->Series[n-i-1]->CustomVertAxis->EndPosition=(int)(100*(i+1)/n);
Chart1->Series[i]->CustomVertAxis->Automatic=false;
Chart1->Series[i]->CustomVertAxis->Maximum=maxvalue;
Chart1->Series[i]->CustomVertAxis->Minimum=minvalue;
}
Chart1->MarginLeft=5;Chart1->MarginRight=0;
Chart1->MarginTop=2; Chart1->MarginBottom=2;
}
}
}
//---------------------------------------------------------------------------
编译运行,点按钮打开一个数据文件(此处要求数据为三列,分别为线号、点号、对应的值,且相同线号的数据连续排列),即可得到平面剖面图。
为了使背景和线条区分明显,可以将背景改为黑色,坐标改白色,为了实现更多的功能,可在其上加上其它功能的按钮,具体功能根据开发者的意愿添加。
如下图所示,并加上了其它一些功能,从左到右各个按钮的功能分别为:打开数据、复制图形、保存图形、打印图形、编辑图形、全部清除、放大、缩小、手绘任意线条、设置手绘线条颜色和粗细、打开辅助几何尺用以辅助画线、全屏浏览、是否显示横轴分隔线、是否分页显示、分页显示时每页显示的点数。图例上的复选框可以任意隐藏线条。
清除按钮下的代码如下:
//-----------------------------------------------------------------
int nn;
Chart1->RemoveAllSeries(); nn=n;n=0;
for(int i=0;i<nn;i++)
Chart1->Tools->Delete(3); //清除横轴分隔线
////在这里用Delete(3),而不是Delete(0);是因为有三个其它的ChartTool是 //之前就创建的,并非动态创建的,因此不用删掉,动态创建的只是ColorLine。
maxvalue=-10000;minvalue=10000;
//-------------------------------------------------------------------------
放大按钮下的代码如下:
float j=1;
void __fastcall TForm1::SpeedButton6Click(TObject *Sender)
{j=j+0.5;
for(int i=0;i<n;i++)
{Chart1->Series[n-i-1]->CustomVertAxis->StartPosition=(int)(j*100*i/n);
Chart1->Series[n-i-1]->CustomVertAxis->EndPosition=(int)(j*100*(i+1)/n);
}
}
//---------------------------------------------------------------------------
缩小按钮下的代码如下:
void __fastcall TForm1::SpeedButton7Click(TObject *Sender)
{if(j>1)
{j=j-0.5;
for(int i=0;i<n;i++)
{Chart1->Series[n-i-1]->CustomVertAxis->StartPosition=(int)(j*100*i/n);
Chart1->Series[n-i-1]->CustomVertAxis->EndPosition=(int)(j*100*(i+1)/n);
}
}
}
//---------------------------------------------------------------------------
“横轴”复选框下的代码如下:
void __fastcall TForm1::CheckBox2Click(TObject *Sender)
{
if(!CheckBox2->Checked)
for(int i=3;i<n+3;i++)
Chart1->Tools->Items[i]->Active=false;
else
for(int i=3;i<n+3;i++)
Chart1->Tools->Items[i]->Active=true;
}
//---------------------------------------------------------------------------
其它按钮的功能在此不作说明了,相信读者已经会了。
以上这种方法动态地地绘制线条,且没有数量限制,线条过多时,曲线起伏变小,区分不太明显,这时可以放大浏览,用鼠标右键可移动图形浏览。
另外,有人用SeriesAfterDraw、SeriesBeforeDraw和ChartScroll等函数,可以通过ScrollBar上下移动线条,如下图所示。但用这种方法动态创建ChartTool、Axis和Series却不如上述方法容易,在此不作说明。
慧都2010促销季开幕,TeeChart for .NET 8折促销!详情咨询:400-700-1020或023-66090381活动详情://pclwef.cn/zh-CN/Products_cn/TeeChart_chinese.html
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
文章转载自:博客转载面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
交互性强的轻量级ActiveX图表控件,能高效生成多任务仪表板
TeeChart Pro VCL/FMX支持RAD Studio,Delphi和C ++ Builder以及FireMonkey的图表制作工具
TeeChart for Java适用于所有主流Java编程环境的TeeChart图表库
TeeChart for PHP一款含100%的PHP源代码并支持PHP5及更高的版本的图表开发工具
TeeChart for .NET优秀的工业4.0 WinForm图表控件,官方独家授权汉化,集功能全面、性能稳定、价格实惠等优势于一体
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢