平面图形基类库 说明书.docx
- 文档编号:23231491
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:11
- 大小:100.48KB
平面图形基类库 说明书.docx
《平面图形基类库 说明书.docx》由会员分享,可在线阅读,更多相关《平面图形基类库 说明书.docx(11页珍藏版)》请在冰豆网上搜索。
平面图形基类库说明书
平面图形基类库
说明书
简介
作品名:
平面图形基类库
作者:
AI编程集团龙年起航
开发平台:
WinXP+VB2010
.NetFramework版本:
3.5
类型:
VB第三方控件/可视化控件/类库
描述:
为VB开发者提供几何图形控件的基类,基于这些基类开发的VB第三方插件,可以使用户在设计时就能绘制几何图形,1.0版暂时只能绘制由线段和圆组成的几何图形。
提醒:
本文最后附上一个实例,大家可以直接看这个实例。
在bin\Debug\目录下只包含AIPGroup.dll1.0的测试版,只会在屏幕上显示一行文字,并不影响用户工作,但如果换成商业版,就没有这行文字了,需要花1元钱购买商业版的用户请到AI编程集团官方博客圈子找灵光大师购买。
AIPGroup.dll1.0商业版的名称是:
AI编程集团1.0
核心解析
这个程序集包含四个类,继承关系图示如下:
平面内任意一点可以用一个控件来表示,这个点的坐标不是用left和top属性值去表示,而是用控件的中心坐标去表示:
X=控件.left+控件.width/2
Y=控件.top+控件.height/2
AIPGroup.dll中的类AIProgramming,是UserControl的派生类,很适合用来做点。
当用鼠标拖动一个点的时候,消除点移动过程中的图形闪烁问题,的确是个难点,但我很好地解决了这个问题。
从一个最简单的图形绘制,可以推理出其它图形的绘制原理。
如果要绘制一条线段,就把两个点控件添加到Form1,拖动其中任意一点,就能出现一条线段,不论是在设计时,还是运行时,都是如此。
下面的几何图形都是用本插件做出来的:
VB提供的那个画线段的控件虽然还不错,但英文不适合中国人的编程习惯,所以我采用中文作为类的名字、属性的名字。
要设置线段的风格,只需要关注以下属性:
属性
说明
foreColor
线的颜色
线型
线的风格,例如:
由点组成的线
线宽
线的粗细
实例一
画条线段
1、打开VB2010,新建一个WindowsApplication项目
2、添加引用,选中“平面图形基类库.zip”内所有的.dll文件
3、打开Form1.Designer.vb,按照下面的示意修改代码(其中蓝色的行是需要添加的):
PartialClassForm1
InheritsSystem.Windows.Forms.Form
'Form重写Dispose,以清理组件列表。
ProtectedOverridesSubDispose(ByValdisposingAsBoolean)
Try
IfdisposingAndAlsocomponentsIsNotNothingThen
components.Dispose()
EndIf
Finally
MyBase.Dispose(disposing)
EndTry
EndSub
'Windows窗体设计器所必需的
PrivatecomponentsAsSystem.ComponentModel.IContainer
'注意:
以下过程是Windows窗体设计器所必需的
'可以使用Windows窗体设计器修改它。
'不要使用代码编辑器修改它。
PrivateSubInitializeComponent()
Me.C=New平面图形基类库.线段及其一点()
Me.D=New平面图形基类库.平面内一点()
Me.SuspendLayout()
'
'Form1
'
Me.AutoScaleDimensions=NewSystem.Drawing.SizeF(6.0!
12.0!
)
Me.AutoScaleMode=System.Windows.Forms.AutoScaleMode.Font
Me.BackColor=System.Drawing.Color.White
Me.ClientSize=NewSystem.Drawing.Size(174,154)
Me.Controls.Add(Me.C)
Me.Controls.Add(Me.D)
Me.Name="Form1"
Me.Text="Form1"
Me.ResumeLayout(False)
EndSub
FriendWithEventsCAs平面图形基类库.线段及其一点
FriendWithEventsDAs平面图形基类库.平面内一点
EndClass
添加完后保存更改。
4、打开Form1,可以在左上角看到两个重合的圆点,用鼠标拖动的方式改变它俩的位置,你可以看到两个点,但它们中间暂时没有线段
5、选中其中的C,把它的属性“另一端点”设置成“D”,这时一条线段出现在Form1中。
如果此时再打开Form1.Designer.vb标签页,你就可以看到VB已经自动添加了好多代码。
6、运行程序,再次尝试用鼠标拖动C、D两个点,看看线段的效果如何。
实例二
画个圆
1-2步参考实例一;
3、打开Form1.Designer.vb,按照下面的示意修改代码(其中蓝色的行是需要添加的):
PartialClassForm2
InheritsSystem.Windows.Forms.Form
'Form重写Dispose,以清理组件列表。
ProtectedOverridesSubDispose(ByValdisposingAsBoolean)
Try
IfdisposingAndAlsocomponentsIsNotNothingThen
components.Dispose()
EndIf
Finally
MyBase.Dispose(disposing)
EndTry
EndSub
'Windows窗体设计器所必需的
PrivatecomponentsAsSystem.ComponentModel.IContainer
'注意:
以下过程是Windows窗体设计器所必需的
'可以使用Windows窗体设计器修改它。
'不要使用代码编辑器修改它。
PrivateSubInitializeComponent()
Me.O=New平面图形基类库.圆及其圆心()
Me.P=New平面图形基类库.平面内一点()
Me.SuspendLayout()
'
'Form2
'
Me.AutoScaleDimensions=NewSystem.Drawing.SizeF(6.0!
12.0!
)
Me.AutoScaleMode=System.Windows.Forms.AutoScaleMode.Font
Me.BackColor=System.Drawing.Color.White
Me.ClientSize=NewSystem.Drawing.Size(284,246)
Me.Controls.Add(Me.O)
Me.Controls.Add(Me.P)
Me.Name="Form2"
Me.Text="Form2"
Me.ResumeLayout(False)
EndSub
FriendWithEventsOAs平面图形基类库.圆及其圆心
FriendWithEventsPAs平面图形基类库.平面内一点
EndClass
添加完后保存更改。
7、打开Form1,可以在左上角看到两个重合的圆点,用鼠标拖动的方式改变它俩的位置,你可以看到两个点,暂时看不到一个圆
8、选中其中的O,把它的属性“圆上一点”设置成“P”,这时一个圆出现在Form1中。
如果此时在打开Form1.Designer.vb标签页,你就可以看到VB已经自动添加了好多代码。
9、运行程序,再次尝试用鼠标拖动O、P两个点,看看线段的效果如何。
圆心和“圆上一点”之间的距离就是圆的半径。
下面再让我们仔细看看类之间的继承关系图:
“线段及其一点”是表示点的控件,而且是表示线段的起点;
“圆及其圆心”也是表示点的控件,但它更是表示圆心的控件。
"平面内一点"和“平面图形”这两个类只能做线段的终点,或者圆上一点;
“线段及其一点”既可以作线段的终点,又可以作线段的起点,还可以作“圆上一点”;
“圆及其圆心”既可以作圆心,又可以做其它圆上的“圆上一点”,还可以作线段的终点。
如何把Form1中的几何图形输出成一张图片?
大家可以参考以下代码:
PublicClassForm1
PrivateSubForm1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Click
DimbAsNewBitmap(ClientSize.Width,ClientRectangle.Height)
DimgAsGraphics=Graphics.FromImage(b)
g.Clear(Me.BackColor)
g=Nothing
ForEachnAsControlInControls
IfTypeOfnIs平面内一点Then
CType(n,平面内一点).drawToParentBMP(b,True)
EndIf
Next
'上面的For语句相当于下面的三条语句:
'Me.线段及其一点1.drawToParentBMP(b,NotTrue)
'Me.线段及其一点2.drawToParentBMP(b,NotTrue)
'Me.圆及其圆心1.drawToParentBMP(b,NotTrue)
b.Save("d:
\2.bmp")
b.Dispose()
Text="请查看d:
\2.bmp。
操作完成于:
"&Now.ToString
EndSub
EndClass
VB几何图形插件是很有市场的,这被许多同行赞同。
如果大家要编写自己的几何图形插件,那么我建议你们选择“平面图形”这个类作为基类。
这套插件的设计思想是很实用的,也是很有效的,源代码对于初学者来说是很好的参考。
在开发自己的插件之前能够读读相关技术文章,对于快速开发很有帮助。
我写了篇相当权威的技术文章,连同源代码一起做成手机应用放到手机应用商店销售,欢迎大家下载。
我可不愿意别人说我的技术不值一文,所以通过手机下载时要收费1元人民币。
实例程序
我编写了一个实例程序:
让VB具备作图功能的第三方插件
发布在我的个人博客,欢迎大家免费下载。
下面是屏幕截图:
阅读这个实例的技巧是:
打开类的*.designer.vb仔细看看。
我喜欢通过我的博客解答技术问题,对于“平面图形基类库”有什么问题,欢迎做我博友留言给我,
Google搜索:
AI编程集团龙年起航的博客
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 平面图形基类库 说明书 平面 图形 基类库
![提示](https://static.bdocx.com/images/bang_tan.gif)