打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VB基本绘画

PSet 方法:将对象上的点设置为指定颜色。相当画点
语法:object.PSet [Step] (x, y), [color]
例如:picture1.pset (100,100) ,vbred

--------------------------------------------------------------------------------------------

point 方法:按照长整数,返回在 Form 或 PictureBox 上所指定磅的红-绿-蓝 (RGB)颜色。不支持命名参数
语法:object.Point(x, y)
例子:form1.point(100,100)'返回(100,100)这一点的颜色

-------------------------------------------------------------------------------------

Line 方法:在对象上画直线和矩形。
语法:object.Line [Step] (x1, y1) [Step] (x2, y2), [color],[B][F]
参数:B 可选的。如果包括,则利用对角坐标画出矩形。
         F 可选的。如果使用了 B 选项,则 F 选项规定矩形以矩形边框的颜色填充。不能不用 B 而用F。如果不用 F 光用 B,则矩形用当前的 FillColor 和 FillStyle 填充。FillStyle 的缺省值为transparent。
例如:form1.Line (100, 100)-(500, 500), vbRed, BF
当然,也可以使用line控件画直线。这里不详细介绍

--------------------------------------------------------------------------------------------

Circle 方法:在对象上画圆、椭圆或弧
语法:object.Circle [Step] (x, y), radius, [color, start, end,aspect]
参数:radius 指半径。
     start, end 可选的。 Single (单精度浮点数),当弧、或部分圆或椭圆画完以后,start 和 end指定(以弧度为单位)弧的起点和终点位置。其范围从 -2 pi 到 2 pi 。起点的缺省值是0; 终点的缺省值是2 *pi。
     aspect 可选的。 Single (单精度浮点数),圆的纵横尺寸比。缺省值为1.0,它在如何屏幕上都产生一个标准圆(非椭圆)。通过改变比例可画椭圆
说明:
①想要填充圆,使用圆或椭圆所属对象的 FillColor 和 FillStyle属性。只有封闭的图形才能填充。封闭图形包括圆、椭圆、或扇形。
②画部分圆或椭圆时,如果 start 为负,Circle 画一半径到 start,并将角度处理为正的;如果 end 为负,Circle画一半径到 end,并将角度处理为正的。Circle方法总是逆时针(正)方向绘图。当它们的值为负值时,VB会自动画一条连接弧的半径,若想去掉,则必须保证两个值都为正,即加上负号
③画圆、椭圆或弧时线段的粗细取决于 DrawWidth 属性值。在背景上画圆的方法取决于 DrawMode 和 DrawStyle属性值。
④画角度为 0 的扇形时,要画出一条半径(向右画一水平线段),这时给 start 规定一很小的负值,不要给 0。
⑤"."可以省略语法中间的某个参数,但不能省略分隔参数的逗号。您指定的最后一个参数后面的逗号是可以省略的。

例子:请看下面画圆的代码。

--------------------------------------------------------------------------------------------

其他:

Scale 方法

用以定义 Form、PictureBoxPrinter 的坐标系统。不支持。

语法

object.Scale(x1, y1)- (x2,y2)

Scale 方法的语法包含下列部分:

 

部分描述
object可选的。一个,其值为“应用于”列表中的一个对象。如果省略object,则带有的Form 对象缺省为 object
x1, y1可选的。均为单精度值,指示定义 object左上角的水平(x-轴)和垂直(y-轴)坐标。这些值必须用括号括起。如果省略,则第二组坐标也必须省略。
x2, y2可选的。均为单精度值,指示定义 object右下角的水平和垂直坐标。这些值必须用括号括起。如果省略,则第一组坐标也必须省略。

 

说明

Scale 方法使您能够将坐标系统重置到所选择的任意刻度。Scale 对的图形语句以及控件位置的坐标系统都有影响。

如果使用不带参数的 Scale(两组坐标都省略),坐标系统将重置为

CurrentX、CurrentY属性

返回或设置下一次打印或绘图方法的 水平 (CurrentX) 或垂直(CurrentY) 坐标。不可用。

语法

object.CurrentX [=x]
object.CurrentY [=y]

 CurrentXCurrentY 属性语法包含下面部分:

 

说明

坐标从对象的左上角开始测量。在对象的左边 CurrentX 属性值为0,上边的 CurrentY 为 0。坐标以为单位表示,或以ScaleHeight、ScaleWidth、ScaleLeft、ScaleTopScaleMode属性定义的度量单位来表示。

用下面的时,CurrentXCurrentY 的设置值按下述说明改变:

 

方法设置 CurrentX, CurrentY 为:
Circle对象的中心。
Cls0,0。
EndDoc0,0。
Line线终点。
NewPage0,0。
Print下一个打印位置。
Pset画出的点。

 

 

FillStyle 常数

VtFillStyle 常数提供指定用于绘制背景的填充类型的选项。

 

常数描述
VtFillStyleNull无填充(背景透出)。
VtFillStyleBrush纯色或图案填充。

 

 

FillColor 属性

返回或设置用于填充形状的颜色:FillColor 也可以用来填充由 CircleLine 生成的圆和方框。

语法

object.FillColor [ =value]

FillColor 属性语法包含下面部分:

 

部分描述
Object,其值是“应用于”列表中的一个对象。
Value值或常数,确定填充颜色,“设置值”中有详细描述。

 

设置值

value 的设置值如下:

 

设置值描述
标准 RGB 颜色在程序中提供 RGBQBColor 函数的颜色集
系统缺省颜色“对象浏览器” 中的 Visual Basic (VB) 对象库的系统颜色常数指定的颜色。Microsoft Windows 运行环境替换用户在设置中的选择。

 

缺省情况下,FillColor 设置为 0(黑色)。

说明

Form 对象之外,如果 FillStyle属性设置为缺省值,1(透明),则忽略 FillColor 设置值。

 

DrawMode 属性

返回或设置一个值,以决定的输出外观或者ShapeLine 控件的外观。

语法

object.DrawMode [=number]

DrawMode 属性语法包含下面部分:

 

部分描述
object,其值是“应用于”列表中的一个对象。
Number整型值,指定外观,“设置值”中有详细描述。

 

设置值

number 的设置值为:

 

常数设置值描述
VbBlackness1黑色。
VbNotMergePen2非或 - 与设置值 15 相反(Merge Pen)。
VbMaskNotPen3与非笔 - 背景色以及画笔反相二者共有颜色的组合。
VbNotCopyPen4非复制笔 - 设置值 13 (Copy Pen) 的反相
VbMaskPenNot5与笔非 - 画笔以及显示反相二者共有颜色的组合。
VbInvert6反转 - 显示颜色的反相
VbXorPen7异或笔 - 画笔的颜色以及显示颜色的组合,只取其一。
VbNotMaskPen8非与笔 - 设置值 9 (Mask Pen) 的反相。
VbMaskPen9与笔 - 画笔和显示二者共有颜色的组合。
VbNotXorPen10非异或笔 - 方式 7 的反相 (Xor Pen)。
VbNop11无操作 - 输出保持不变。该设置实际上关闭画图。
VbMergeNotPen12或非笔 - 显示颜色与画笔颜色反相的组合。
VbCopyPen13复制笔(缺省值) - 由 ForeColor 属性指定的颜色。
VbMergePenNot14或笔非 - 画笔颜色与显示颜色的反相的组合。
VbMergePen15或笔 - 画笔颜色与显示颜色的组合。
VbWhiteness16白色。

 

说明

当用 ShapeLine 控件,或者用图形方法画图时,使用这个属性产生可视效果。VisualBasic 将绘图模式的每一个像素与现存背景色中相应的像素做比较,然后进行操作。例如,设置值 7(异或笔)用 Xor操作符将绘图模式像素和背景像素组合起来。

DrawMode 设置值的真正效果,取决于所画线的颜色与屏幕已存在颜色的合成。对于设置值 1,6,7,11,13 和 16可以最可靠地预知该属性的输出结果。

 

DrawStyle 属性

返回或设置一个值,以决定输出的线型的样式。

语法

object.DrawStyle [=number]

DrawStyle 属性语法包含下面部分:

 

部分描述
Object,其值是“应用于”列表中的一个对象。
Number整数,指定线型,“设置值”中有详细描述。

 

设置值

number 的设置值为:

 

常数设置值描述
VbSolid0(缺省值)实线
VbDash1虚线
VbDot2点线
VbDashDot3点划线
VbDashDotDot4双点划线
VbInvisible5无线
VbInsideSolid6内收实线

 

说明

 DrawWidth 属性设置为大于 1, DrawStyle属性设置值为 1 到 4 会画一条实线( DrawStyle 属性值不改变)。若 DrawWidth设置为 1 DrawStyle 产生的效果如前面表中的各设置值所述。

DrawWidth 属性

返回或设置输出的线宽。

语法

object.DrawWidth [=size]

DrawWidth 属性语法具有下列组成部分:

 

部分描述
object,其值是“应用于”列表中的一个对象。
size,其范围从 1 到32,767。该值以为单位表示线宽。缺省值为1,即,一个像素宽。

 

说明

增大该属性值会增加线的宽度。如果 DrawWidth 属性值大于 1,DrawStyle属性值设置为 1 到 4 时会画出一条实线来(DrawStyle 属性值不会改变)。将 DrawWidth设置为 1,允许 DrawStyle 产生 DrawStyle 属性表中列出的结果。

---------------------------------------------------------------------------------------------

使用 Shape 控件

 

可用 Shape 控件在窗体、框架或图片框中创建下述预定义形状:矩形、正方形、椭圆形、圆形、圆角矩形或圆角正方形。

 

可以设置任意绘制在窗体上的形状的形状样式、颜色、填充样式、边框颜色和边框样式。

完成简单功能时,可用形状控件创建多种形状而无需编写代码。要实现更高级的功能,应使用 Line 和 Circle 方法。

详细信息 关于在运行时使用 Line 方法绘制直线、矩形、填充的方框,或者关于使用 Circle方法绘制圆、椭圆、圆弧的详细信息,请参阅“使用文本和图形”中的“使用图形方法”。

预定义的形状

Shape 控件的 Style 属性提供了六种预定义的形状。下表列出所有预定义形状、形状值和相应的 Visual Basic常数:

 

形状样式常数
矩形0vbShapeRectangle
正方形1vbShapeSquare
椭圆形2vbShapeOval
圆形3vbShapeCircle
圆角矩形4vbShapeRoundedRectangle
圆角正方形5vbShapeRoundedSquare

 

 

Fill 和 Line 样式

可用 FillStyle 和 BorderStyle 属性对绘制在窗体上的任意形状设置填充样式和边框样式。

FillStyle 属性和 Style属性一样都提供了若干预定义的填充样式图案。其中包括:实线、透明、水平线、垂直线、向上对角线、向下对角线、十字线和对角十字线。

BorderStyle 属性提供若干预定义的边框样式。其中包括:透明、实线、虚线、点线、点划线、双点划线和内实线。

详细信息 FillStyle 和 BorderStyle属性都提供了代表上面所列样式的常数。关于详细信息,请参阅《语言参考》的“FillStyle 属性”和“BorderStyle属性”。

设置 Color 属性

可用 BackColor 和 FillColor 属性为形状和形状的边框添加颜色。

设计时,可从 Shape 控件的“属性”窗口中选定填充或边框颜色属性,然后从提供的调色板或系统颜色中选择要设置的颜色。

为在运行时设置颜色,可使用 Visual Basic 颜色常数(例如,vbGreen)或系统颜色常数(例如vbWindowBackground),还可使用 RGB 函数指定填充颜色。

注意 当把 FillStyle 或 BackStyle 属性设置为 1 (Transparent) 时将忽略FillColor 和 BackColor 属性。

详细信息 关于 Visual Basic 颜色常数列表,请参阅《语言参考》的“颜色常数”。关于指定 RGB颜色的信息,请参阅《语言参考》的“RGB 函数”。同时,关于在 Visual Basic中创建图形的详细信息,请参阅“使用文本和图形”。

在窗体上绘制形状

可用 Shape 控件在窗体上绘制(普通或圆角)矩形、(普通或圆角)正方形、椭圆形和圆形。

要在窗体上绘制形状,请按以下步骤执行

  1. 在工具箱中,选定 Shape 控件。

    当指针移动到窗体上时就变成了一个十字。

  2. 单击并拖动十字使所绘制的形状达到所需大小。
  3. 在“属性”窗口中选定 Shape 属性。
  4. 在“设置值”框中选择所需样式。

调整 Shape 控件大小的方法和调整其它控件的方法相同:选定并拖动控件,将其调整到所需尺寸,或者设置控件的 Height 和Width 属性。

--------------------------------------------------------------------------------------------

绘制流动圆的方法(当然,效果没flash好):

Option Explicit
Private WithEvents Timer1 As Timer
Private WithEvents Timer2 As Timer
Dim Pi As Double
Dim RunTimeA, RunTimeB As Double
Dim cntX As Single, cntY As Single
Dim r As Single
Dim tX As Single, tY As Single
Dim Rad As Single
Dim clr As String

 

Private Sub Form_Load()
Pi = 0.0175  '该值为圆周率除以180的近似值,为什么这样请看数学必须四圆的内容

Set Timer1 = Controls.Add("vb.timer","Timer1")   '创建一个timer,同下

Set Timer2 = Controls.Add("vb.timer", "Timer2")
With Form1'批量对form1进行设置
.Height = 5000
.Width = 5000
.BackColor = &H80000008 '设置窗口背景颜色
.Caption = "单击用circle画,双击用pset画"
.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) /2 '使窗口居中
End With
cntX = Form1.Width / 2  '圆心的坐标,同下
cntY = Form1.Height / 2 - 200
Timer1.Enabled = False '设置timer,同下
Timer1.Interval = 10
Timer2.Interval = 10
Timer2.Enabled = False
r = 2000  '设置半径
RunTimeA = 10  '设置间隔时间内运行次数,同下
RunTimeB = 10
Rad = 3.1415 / 180  '获得单位弧度,具体请看数学必修四圆的内容
clr = "&HFF0000"  '设置圆的颜色
End Sub

 

Private Sub Form_Click()
Me.Cls  '清除窗口上的图像
RunTimeB = 0
Timer2.Enabled = True
Timer1.Enabled = False
End Sub

 

Private Sub Form_DblClick()
Me.Cls
RunTimeA = 0
Timer2.Enabled = False
Timer1.Enabled = True
End Sub

 

Private Sub Timer1_Timer()
Dim i As Long
For i = 1 To Rad / 3.1415 * 180  '从角度1循环到角度N
DoEvents   '之前说过的,释放....
RunTimeA = RunTimeA + 1
If RunTimeA > 360 Then '判断是否画了一个圆,是则重设tuntime并改变画圆的颜色方便区分
RunTimeA = 0
If clr = "&HFF0000" Then
clr = "&HC00000"
Else
clr = "&HFF0000"
End If
End If
Dim Arg As Double
Arg = -Abs(Pi *RunTimeA)        '获得角度,具体看数学必修四圆的内容
tX = cntX + r *Cos(Arg)            '获得线与单位圆的交点的x值,具体看数学必修四圆的内容,同下
tY = cntY + r *Sin(Arg)              '获得线与单位圆的交点y值
Me.DrawWidth =5                                '设置笔画的大小
Me.PSet (tX, tY),clr                      '画点
Next
End Sub


Private Sub Timer2_Timer()
Dim radd As Double
RunTimeB = RunTimeB + 1
radd = Abs(Rad *RunTimeB)                '获得弧度
If radd > 3.14 * 2Then                          '判断弧度是否超过圆周率的两倍
Me.Circle (cntX, cntY), r,clr                  '画圆
If clr = "&HFF0000" Then
clr = "&HC00000"
Else
clr = "&HFF0000"
End If
RunTimeB = 0
Else
Me.DrawWidth =5                                '设置笔画的大小
Me.Circle (cntX, cntY), r, clr, 0,radd   '画弧
End If
End Sub

-------------------------------------------------------------

'总的来说,用circle画弧的方法比较流畅,并且比较好看些,但不能获得坐标。若要取得坐标,建议使用下面的代码

'在窗体中添加一个frame

Dim Pi As Double
Dim runTime As Double
Dim a As Single, b As Single
Dim cntX As Single, cntY As Single
Dim r As Single
Private WithEvents Timer1 As Timer
Dim tX As Single, tY As Single
Dim tStep As Single


Private Sub Form_Load()
Pi = Atn(1)
Set Timer1 = Controls.Add("vb.timer", "Timer1") '创建一个timer
a = 250 '椭圆长轴
b = 250 '椭圆短轴
cntX = 500 '中心坐标X
cntY = 500 '中心坐标Y
r = 10 '圆半径
Timer1.Interval = 5 '运动间隔(毫秒)
tStep = Pi / 50 '角度步长
Timer1.Enabled = True
End Sub

 

Private Sub Timer1_Timer()
runTime = runTime + 5 '每步移动的大小
Dim Arg As Double
Arg = runTime * tStep
tX = cntX + a * Cos(Arg)
tY = cntY + b * Sin(Arg)
Me.Cls
Me.DrawStyle = 2
'Me.Circle (cntX, cntY), a, vbRed, , , b / a'画出运动轨迹
Frame1.Move tX, tY, Frame1.Width, Frame1.Height '物体移动
End Sub


'该代码是从网上找的,我的知识还无法全部理解,就这样了。。。。会用就行。。。。。。。

-------------------------------------------------------------------------------------------

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
计算机技术基础(第十一章 图形设计 )
用C#制作飘动的窗体效果
用VB实现实时曲线的绘制和保存--VB-程序设计-计算机学习网-育龙网
用VB制做可换图片的屏幕保护程序
第9章 图形操作
VB6.0功率扭矩坐标系源程序
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服