输入N个点的坐标,由程序判断该N个点是否能构成一个凸多边形.(VB)1

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 18:16:30

输入N个点的坐标,由程序判断该N个点是否能构成一个凸多边形.(VB)1
输入N个点的坐标,由程序判断该N个点是否能构成一个凸多边形.(VB)
1

输入N个点的坐标,由程序判断该N个点是否能构成一个凸多边形.(VB)1
Private Sub Form_Click()
Dim l As Single
Dim m As Single
Dim a As Single
Dim b As Single
Dim c As Single
Dim d As Single
Dim x As Single
Dim y As Single
a = InputBox("请输入任意一点横坐标")
b = InputBox("请输入同一点的纵坐标")
c = InputBox("请输入另外任意一横点")
d = InputBox("请输入同一点的纵坐标")
e = InputBox("请再输入任意一个不在前面两点组成线段上的点的横坐标")
f = InputBox("请再输入任意一个不在前面两点组成线段上的点的纵坐标")
x = (b - d) / (a - c) * e - f + b - (b - a) / (a - c) * a (判断点在直线什么方位)
If x > 0 Then
n = InputBox("请输入剩余点个数N(N>1)")
For i = 1 To n (循环判断点的方位)
m = InputBox("请输入横坐标值")
l = InputBox("请输入纵坐标值")
y = (b - d) / (a - c) * m - l + b - (b - a) / (a - c) * a
If y < 0 Then
Print "不能构成凸多边形"
End If
Next i
Print "能构成凸多边形"
Else
o = InputBox("请输入剩余点个数N(N>1)")
For i = 1 To o (循环判断点的方位)
q = InputBox("请输入横坐标值")
w = InputBox("请输入纵坐标值")
z = (b - d) / (a - c) * q - w + b - (b - a) / (a - c) * a (判断点的方位)
If z > 0 Then
Print "不能构成凸多边形"
End If
Next i
Print "能构成凸多边形"
End If
End Sub
代码亲测可用,自己制造的,为方面广大同学,不再用05年那个不能用的代码,特此发布,不足之处还请指教