AForge学习笔记(2):AForge.Controls
作者:GAO-XIANG
转自:http://blog.csdn.net/xiang__jiangsu/article/details/8120414
首先我们在VS2010中添加AForge.Controls提供的控件:
Chart:这一控件提供了AddDataSeries,Dispose,RemoveAllDataSeries,RemoveDataSeries,UpdataDataSeries方法,通过下面的简单实例我们进行学习:
实例:// create data series array
double[,] testValues = new double[10, 2];
// fill data series
for ( int i = 0; i < 10; i++ )
{
testValues[i, 0] = i; // X values
testValues[i, 1] = Math.Sin( i *i ); // Y values
}
// add new data series to the chart
chart.AddDataSeries( "Test", Color.DarkGreen, Chart.SeriesType.ConnectedDots, 3 );
// set X range to display
chart.RangeX = new AForge.Range( 0, 9 );
// update the chart
chart.UpdateDataSeries( "Test", testValues );
运行结果:
ColorSlider:这一控件包含有ColorSliderType枚举类型,类型有:Gradient,InnerGradient,OuterGradient,Threshold。使用见实例:
实例:colorSlider1.DoubleArrow = true;//使用双向箭头
colorSlider1.EndColor = Color.Red;//以红色结束
colorSlider1.FillColor = Color.Orange;//控件背景色
colorSlider1.Min = 10;//设定【0,255】区间最小值
colorSlider1.Max = 200;//设定【0,255】区间最大值
colorSlider1.StartColor = Color.Blue;//起始颜色设置
colorSlider1.Type = ColorSlider.ColorSliderType.Gradient;//设定颜色渐变类型
Histogram:为Value赋整型值,即可获得直方图,示例如下:
实例://create array with histogram values
int[] histogramValues = new int[500];
Random rd = new Random();
AForge.Parallel.For(0,500,delegate(int i)
{
//为直方图赋值,值为随机数产生
histogramValues[i]=rd.Next(100);
});
histogram.AllowSelection = true;//允许鼠标选择
histogram.Color = Color.Blue;//直方图颜色
histogram.IsLogarithmicView = true;//显示值以对数为底
histogram.IsVertical = false;//直方图是否垂直显示
// set values to histogram control
histogram.Values = histogramValues;
运行结果:
HuePicker:该控件用于选择色彩,色彩值为整型,位于【0,359】,包括Value,Range两种类型,示例如下:
实例: huePicker1.Max = 350;//指定色彩最大值
huePicker1.Min = 10;//指定色彩最小值
huePicker1.Type = AForge.Controls.HuePicker.HuePickerType.Range;//指定色彩选择类型
//HuePicker的ValuesChanged事件
private void huePicker1_ValuesChanged(object sender, EventArgs e)
{
textBox1.Text = huePicker1.Value.ToString();
}
运行结果:
ManipulatorControl :这一控件是为了模拟控制器,通过改变中心点的相对位置,产生被控制体位置以及力度的变化。它有一个重要属性:ResetPositionOnMouseRelease,用以确定控制器行为,通常我们在PositionChanged事件中进行操纵器控制,示例如下:
实例://重置窗体大小
Size size = new System.Drawing.Size(2 * manipulatorControl1.Width,manipulatorControl1.Height);
this.Size = size;
//Manipulator色彩设置
manipulatorControl1.BorderColor = Color.Blue;
manipulatorControl1.BottomLeftBackgroundColor = Color.Brown;
manipulatorControl1.BottomRightBackgroundColor = Color.CadetBlue;
manipulatorControl1.DrawHorizontalAxis = true;
manipulatorControl1.DrawVerticalAxis = true;
manipulatorControl1.ManipulatorColor = Color.Coral;
manipulatorControl1.TopLeftBackgroundColor = Color.DarkBlue;
manipulatorControl1.TopRightBackgroundColor = Color.DarkGreen;
//确定是否位置移动是否进行行为操作
manipulatorControl1.ResetPositionOnMouseRelease = false;
bt=new Bitmap(@"C:\Users\GAOXIANG\Desktop\dog.jpg");
gp = this.CreateGraphics();//通过窗体创建GDI+
//设置图片初始位置
x = 3 * manipulatorControl1.Width / 2-bt.Width/2;
y = manipulatorControl1.Height / 2-bt.Height/2;
//记录操控器当前位置
private void manipulatorControl1_PositionChanged(object sender, ManipulatorControl.PositionEventArgs me)
{
a = me.X;
b = me.Y;
}
//操控器位置改变改变当前对象,实现操控
private void manipulatorControl1_MouseUp(object sender, MouseEventArgs e)
{
this.Refresh();
if (e.Button == MouseButtons.Left)
{
gp.DrawImage(bt, x + a * (manipulatorControl1.Width / 2), y - b * (manipulatorControl1.Height / 2));
}
}
运行结果:
PictureBox:在AForge中该控件继承于Form中的PictureBox,但是该控件解决了Form中PictureBox不能显示16bpp,48bpp,64bpp彩色图像。
SliderControl:滑动条,与Manipulator控件使用方法类似,在次不再讨论。
VideoSourcePlayer:用以支持视频播放,这一控件的使用我们在AForge.Video中探讨。
AForge学习笔记(2):AForge.Controls相关推荐
- AForge学习笔记(3):AForge.Fuzzy
AForge.Fuzzy 提供了大量的模糊集操作. FuzzySet:模糊集是模糊应用的基础,也是理解模糊应用的关键,我们通过一个例子理解模糊集的概念:在现实生活中我们以冷暖来直观的描述温度,例如我们 ...
- AForge学习笔记(5):AForge.Imaging(上)
作者:GAO-XIANG 转自:http://blog.csdn.net/xiang__jiangsu/article/details/8131141 本次我们一起来学习AForge中影像处理算法以及 ...
- AForge学习笔记(1):AForge
作者:GAO-XIANG 转自:http://blog.csdn.net/xiang__jiangsu/article/details/8119297 本次主要简单介绍AForge.NET中的 AF ...
- AForge学习笔记(4):AForge.Genetic
遗传算法简介: 在学习AForge的遗传算法之前,我们首先简单介绍一下遗传算法的理念:遗传算法的提出是源于达尔文进化论思想的启发,优胜劣汰,适者生存,适应力强的生存下去的几率更大,那么在算法上我们用适 ...
- AForge学习笔记(5):AForge.Imaging(下)
作者:GAO-XIANG 转自:http://blog.csdn.net/xiang__jiangsu/article/details/8138326 ImageStatistics:对图像的RGB进 ...
- AForge学习笔记(10):AForge.Imaging.Filters
作者:GAO-XIANG 转自:http://blog.csdn.net/xiang__jiangsu/article/details/8144304 AdaptiveSmoothing:图像平滑处理 ...
- C#学习之 调用 AForge.NET Framework 启动摄像头
今天开始捣鼓C#启动摄像头,之前做过用 C++调用OPENCV库启动摄像头,C#理论上也可以. 但是看了 这篇博文笔记, 顿时脑洞大开,原来可以和摄像头打交道的库有这么多啊.之前,我就直到OPE ...
- SilverLight学习笔记--Silverlight中WebRequest通讯
本文我们学习如何使用WebRequest类实现客户端和服务器端的通讯. 本例处理过程:在客户端,我们在文本框中输入任意文本,然后用POST方法向服务器端传递信息,服务器端收到从客户端传来的信 ...
- WinSock学习笔记3:Select模型
WinSock学习笔记3:Select模型 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, G ...
最新文章
- [雪峰磁针石博客]2018最佳12个开源或免费web服务器和客户端性能测试工具
- Python- 反射 及部份内置属性方法
- 百度智能小程序开源联盟成立,首批12家成员签约
- Dubbo-Admin管理平台和Zookeeper注册中心的搭建(转)
- 细说C#多线程那些事 - 线程同步和多线程优先级
- qt高亮快捷键_QtCreator中常用快捷键总结
- 判断标签是否出界,重新设置样式
- IntelliJ IDEA for Mac 如何取消双击shift键打开全局搜索弹窗
- java移动端接口测试_走进Java接口测试之测试框架TestNG数据驱动(入门篇)
- docker-compose搭建kafka集群
- 仿XP系统的任务栏菜单
- 拒绝卡顿——在WPF中使用多线程更新UI
- 让你的软件支持繁体中文
- svn代码统计工具使用说明
- c语言scanf输入无理数,简单C语言scanf输入问题
- in not 效率太慢_[笔记] SQL性能优化 - 避免使用 IN 和 NOT IN
- 玩游戏机械键盘什么牌子好, 我们聊聊Hyperx游戏机械键盘
- mysql回表什么意思_什么是MYSQL回表查询
- 从零认识 无标度网络
- 中国软件10大最具影响力人物