vb.net多边形填充 vb求多边形面积

VB中怎么实现多边形区域填充

Const ALTERNATE = 1

成都创新互联公司主要从事做网站、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务忻城,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108

Const WINDING = 2

Private Type POINTAPI

X As Long

Y As Long

End Type

Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long

Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Private Declare Function PtInRegion Lib "gdi32" (ByVal hRgn As Long, ByVal X As Long, ByVal Y As Long) As Long

Private Declare Function FillRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long) As Long

Private Declare Function CreatePatternBrush Lib "gdi32" (ByVal hBitmap As Long) As Long

Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long

Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long

Dim hRegion As Long

Dim hBrush As Long

Dim pic1 As New StdPicture

Private Sub Command1_Click()

Call FillRgn(Me.hdc, hRegion, hBrush)

End Sub

Private Sub Form_Load()

Dim p(8) As POINTAPI

Me.ScaleMode = 3

p(0).X = 100: p(0).Y = 100

p(1).X = 150: p(1).Y = 70

p(2).X = 110: p(2).Y = 70

p(3).X = 110: p(3).Y = 30

p(4).X = 50: p(4).Y = 30

p(5).X = 50: p(5).Y = 70

p(6).X = 30: p(6).Y = 70

p(7).X = 30: p(7).Y = 85

p(8).X = 85: p(8).Y = 85

hRegion = CreatePolygonRgn(p(0), 9, ALTERNATE)

hBrush = CreateSolidBrush(RGB(255, 0, 0))

End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

If PtInRegion(hRegion, X, Y) Then

Debug.Print "In 在多边形区域"

End If

End Sub

Private Sub Form_Unload(Cancel As Integer)

DeleteObject hRegion

DeleteObject hBrush

End Sub

我要用VB 对已经在picture里画好的由两个大小不一样的矩形组成的多边形进行填充。

可以用line填充,像这样:

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Form_Click()

sp = Me.DrawWidth * 15

For i = 0 To 1000 Step sp

Line (i, 0)-(i, 1000), vbRed

DoEvents

Sleep 20

Next

End Sub

调整drawwidth可以设置填充快慢,比如大半径为r1,小半径r2,那么r2的填充线宽度为drawwidth*r2/r1

vb怎么画多边形,输入坐标,画出这些点围起来的图形,怎么做啊

Line 方法

在对象上画直线和矩形。

语法

object.Line [Step] (x1,1) [Step] (x2,y2), [color], [B][F]

Line 方法的语法有以下对象限定符和部分:

部分 描述

object 可选的。 对象表达式,其值为“应用于”列表中的对象。如果object 省略,具有焦点 的 窗体作为object。

Step 可选的。关键字,指定起点坐标,它们相对于由CurrentX 和 CurrentY 属性提供的当前图形位置。

(x1, y1) 可选的。Single (单精度浮点数),直线或矩形的起点坐标。ScaleMode 属性决定了使用的度量单位。如果省略,线起始于由 CurrentX 和 CurrentY 指示的位置。

Step 可选的。关键字,指定相对于线的起点的终点坐标。

(x2, y2) 必需的。Single (单精度浮点数),直线或矩形的终点坐标。

color 可选的。Long (长整型数),画线时用的 RGB 颜色。如果它被省略,则使用ForeColor 属性值。可用 RGB 函数或 QBColor 函数指定颜色。

B 可选的。如果包括,则利用对角坐标画出矩形。

F 可选的。如果使用了B 选项,则 F 选项规定矩形以矩形边框的颜色填充。不能不用 B 而用 F。如果不用 F 光用 B,则矩形用当前的 FillColor 和 FillStyle 填充。FillStyle 的缺省值为 transparent。

说明

画联结的线时,前一条线的终点就是后一条线的起点。

线的宽度取决于DrawWidth 属性值。在背景上画线和矩形的方法取决于 DrawMode 和 DrawStyle 属性值。

执行Line 方法时, CurrentX 和 CurrentY 属性被参数设置为终点。

这个方法不能用于With...End With 语句块。


当前文章:vb.net多边形填充 vb求多边形面积
链接地址:http://myzitong.com/article/dopppjc.html