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

来源:学生作业帮助网 编辑:作业帮 时间:2024/07/07 06:14:15
输入N个点的坐标,由程序判断该N个点是否能构成一个凸多边形.(VB)1
xU]OQ+y%H|!M4}mU*PTZJB g] UTַɹs̜{gכGW?Sڌq7 .mqGcE/7y _ibu[/y^2%G8#;wgN70!mSu'}ޛmDd$&ƢWhb QE,6hl 26X>Hp"#8kyBc^]k= V>٫P}(m(\gEs KMȆT۸cu1坡lgH_9 HQ LAnqdWEKTZKX;"_VYlɏDE`^%x\:$F~8zQy`,񨮽ov0|3LFܾH\i36]df8 6ȩs#l]]w//Lz,`$bp& AXڵ?ڝ׶{vO{hotWsmƬma_|o+Mm uz7ace,\{2e-?u@,aVRyCTf (2/ҪםJ[缯

输入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年那个不能用的代码,特此发布,不足之处还请指教