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、PictureBox 或
Printer 的坐标系统。不支持命名参数。
语法
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]
CurrentX 和
CurrentY 属性语法包含下面部分:
说明
坐标从对象的左上角开始测量。在对象的左边 CurrentX 属性值为
0,上边的 CurrentY 为 0。坐标以缇为单位表示,或以
ScaleHeight、ScaleWidth、ScaleLeft、ScaleTop 和 ScaleMode
属性定义的度量单位来表示。
用下面的图形方法时,CurrentX 和
CurrentY 的设置值按下述说明改变:
方法 |
设置 CurrentX, CurrentY 为: |
Circle |
对象的中心。 |
Cls |
0,0。 |
EndDoc |
0,0。 |
Line |
线终点。 |
NewPage |
0,0。 |
Print |
下一个打印位置。 |
Pset |
画出的点。 |
FillStyle 常数
VtFillStyle 常数提供指定用于绘制背景的填充类型的选项。
常数 |
描述 |
VtFillStyleNull |
无填充(背景透出)。 |
VtFillStyleBrush |
纯色或图案填充。 |
FillColor 属性
返回或设置用于填充形状的颜色:FillColor 也可以用来填充由 Circle 和
Line 图形方法生成的圆和方框。
语法
object.FillColor [ =
value]
FillColor 属性语法包含下面部分:
部分 |
描述 |
Object |
对象表达式,其值是“应用于”列表中的一个对象。 |
Value |
值或常数,确定填充颜色,“设置值”中有详细描述。 |
设置值
value 的设置值如下:
设置值 |
描述 |
标准 RGB 颜色 |
在程序中提供 RGB 或 QBColor 函数的颜色集 |
系统缺省颜色 |
“对象浏览器” 中的 Visual Basic (VB) 对象库的系统颜色常数常数指定的颜色。Microsoft Windows 运行环境替换用户在控制面板设置中的选择。 |
缺省情况下,FillColor 设置为 0(黑色)。
说明
除 Form 对象之外,如果 FillStyle
属性设置为缺省值,1(透明),则忽略 FillColor 设置值。
DrawMode 属性
返回或设置一个值,以决定图形方法的输出外观或者
Shape 及 Line 控件的外观。
语法
object.DrawMode [=
number]
DrawMode 属性语法包含下面部分:
部分 |
描述 |
object |
对象表达式,其值是“应用于”列表中的一个对象。 |
Number |
整型值,指定外观,“设置值”中有详细描述。 |
设置值
number 的设置值为:
常数 |
设置值 |
描述 |
VbBlackness |
1 |
黑色。 |
VbNotMergePen |
2 |
非或笔 - 与设置值 15 相反
(Merge Pen)。 |
VbMaskNotPen |
3 |
与非笔 - 背景色以及画笔反相二者共有颜色的组合。 |
VbNotCopyPen |
4 |
非复制笔 - 设置值 13 (Copy Pen) 的反相 |
VbMaskPenNot |
5 |
与笔非 - 画笔以及显示反相二者共有颜色的组合。 |
VbInvert |
6 |
反转 - 显示颜色的反相 |
VbXorPen |
7 |
异或笔 - 画笔的颜色以及显示颜色的组合,只取其一。 |
VbNotMaskPen |
8 |
非与笔 - 设置值 9 (Mask Pen) 的反相。 |
VbMaskPen |
9 |
与笔 - 画笔和显示二者共有颜色的组合。 |
VbNotXorPen |
10 |
非异或笔 - 方式 7 的反相 (Xor Pen)。 |
VbNop |
11 |
无操作 - 输出保持不变。该设置实际上关闭画图。 |
VbMergeNotPen |
12 |
或非笔 - 显示颜色与画笔颜色反相的组合。 |
VbCopyPen |
13 |
复制笔(缺省值) - 由 ForeColor 属性指定的颜色。 |
VbMergePenNot |
14 |
或笔非 - 画笔颜色与显示颜色的反相的组合。 |
VbMergePen |
15 |
或笔 - 画笔颜色与显示颜色的组合。 |
VbWhiteness |
16 |
白色。 |
说明
当用 Shape 或 Line 控件,或者用图形方法画图时,使用这个属性产生可视效果。Visual
Basic 将绘图模式的每一个像素与现存背景色中相应的像素做比较,然后进行逐位比较操作。例如,设置值 7(异或笔)用 Xor
操作符将绘图模式像素和背景像素组合起来。
DrawMode 设置值的真正效果,取决于运行时所画线的颜色与屏幕已存在颜色的合成。对于设置值 1,6,7,11,13 和 16
可以最可靠地预知该属性的输出结果。
DrawStyle 属性
返回或设置一个值,以决定图形方法输出的线型的样式。
语法
object.DrawStyle [=
number]
DrawStyle 属性语法包含下面部分:
部分 |
描述 |
Object |
对象表达式,其值是“应用于”列表中的一个对象。 |
Number |
整数,指定线型,“设置值”中有详细描述。 |
设置值
number 的设置值为:
常数 |
设置值 |
描述 |
VbSolid |
0 |
(缺省值)实线 |
VbDash |
1 |
虚线 |
VbDot |
2 |
点线 |
VbDashDot |
3 |
点划线 |
VbDashDotDot |
4 |
双点划线 |
VbInvisible |
5 |
无线 |
VbInsideSolid |
6 |
内收实线 |
说明
若 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
常数:
形状 |
样式 |
常数 |
矩形 |
0 |
vbShapeRectangle |
正方形 |
1 |
vbShapeSquare |
椭圆形 |
2 |
vbShapeOval |
圆形 |
3 |
vbShapeCircle |
圆角矩形 |
4 |
vbShapeRoundedRectangle |
圆角正方形 |
5 |
vbShapeRoundedSquare |
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 控件在窗体上绘制(普通或圆角)矩形、(普通或圆角)正方形、椭圆形和圆形。
要在窗体上绘制形状,请按以下步骤执行
- 在工具箱中,选定 Shape 控件。
当指针移动到窗体上时就变成了一个十字。
- 单击并拖动十字使所绘制的形状达到所需大小。
- 在“属性”窗口中选定 Shape 属性。
- 在“设置值”框中选择所需样式。
调整 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 * 2
Then
'判断弧度是否超过圆周率的两倍
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
'该代码是从网上找的,我的知识还无法全部理解,就这样了。。。。会用就行。。。。。。。
-------------------------------------------------------------------------------------------
|