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

2024-11-16 10:31:35
推荐回答(3个)
回答(1):

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 语句块。

回答(2):

Private Sub Form_Load()'想了一个晚上,不知符不符合你的要求,如果有问题再追问
Picture1.Height = 9000
Picture1.Width = 9000
Picture1.AutoRedraw = True
End Sub
Private Sub Command1_Click()
Dim b()
Dim c()
Dim s
Dim Minx, Miny, Maxx, Maxy, Midx, Midy
Dim i As Integer
If Int(Val(Text1)) >= 3 Then
ReDim b(1 To Int(Val(Text1)))
ReDim c(1 To Int(Val(Text1)))
For i = 1 To Val(Text1)
b(i) = InputBox("请输入第" & i & "个坐标X", "shuru", "235")
c(i) = InputBox("请输入第" & i & "个坐标y", "shuru", "667")
Next
Minx = b(i - 1): Maxx = b(i - 1)
Miny = c(i - 1): Maxy = c(i - 1)
For i = 1 To UBound(b) - 1
If Val(Minx) > Val(b(i)) Then Minx = b(i)
If Val(Maxx) < Val(b(i)) Then Maxx = b(i)
If Val(Miny) > Val(c(i)) Then Miny = c(i)
If Val(Maxx) < Val(c(i)) Then Maxy = c(i)
Next i
Midx = (Val(Minx) + Val(Maxx)) / 2
Midy = (Val(Miny) + Val(Maxy)) / 2
Picture1.Scale (Val(Midx) - Val(Maxx - Minx) / 1.9 - 1, Val(Midy) - Val(Maxy - Miny) / 1.9 - 1)-(Val(Midx) + Val(Maxx - Minx) / 1.9 + 1, Val(Midy) + Val(Maxy - Miny) / 1.9 + 1)
For i = 1 To UBound(b) - 1
s = s + b(i) * c(i + 1) - c(i) * b(i + 1)
Picture1.Line (b(i), c(i))-(b(i + 1), c(i + 1))
Next i
Picture1.Line (b(1), c(1))-(b(i), c(i))
s = s + b(i) * c(1) - c(i) * b(1)
Text2.Text = Abs(s) / 2
Else
MsgBox "请输入大于等于3的数"
End If
End Sub

回答(3):

看看这个应该可以
http://zhidao.baidu.com/question/509266637.html?oldq=1