明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1435|回复: 4

[求助]拜请各位大虾有关下标越界的问题!!!感激涕零

[复制链接]
发表于 2006-5-12 15:51:00 | 显示全部楼层 |阅读模式

我在编一个求点集凸包的程序

采点集的程序部分已经搞定了但到了去极点部分就老提示下标越界

下面是我的程序:

Option Explicit
Private Type pointinfo
x As Single                    '点的x 坐标值
y As Single                    '点的y 坐标值
q As Single                    '与水平线的夹角
End Type
Dim p0 As pointinfo
Dim p(1 To 200) As pointinfo    '点集
Dim ps(1 To 200) As pointinfo    '排序后的点集
Dim pi(1 To 200) As pointinfo   '极点
Dim n, m, d As Integer
Dim x0, y0 As Single
Dim l, e As Integer

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
DrawWidth = 4
If n = 0 Then
 p0.x = x
 p0.y = y
 Circle (x, y), 100, RGB(255, 0, 255)
Else '输入点集
 p(n).x = x
 p(n).y = y
 Circle (x, y), 10, RGB(255, 255, 0)
End If
n = n + 1
x0 = x
y0 = y

End Sub


Private Sub Command2_Click()
Dim i As Integer
Dim q As Single
p(n).x = x0
p(n).y = y0
Const pi = 3.14
For i = l To n
If p(i).y - p0.y = 0 Then         (总是在这句提示下标越界)
        If p(i).x - p0.x = 0 Then
           p(i).q = 90
        ElseIf p(i).x - p0.x > 0 Then
          p(i).q = 180 / pi * Atn((p(i).y - p0.y) / (p(i).x - p0.x))
        Else
            p(i).q = 180 / pi * Atn((p(i).y - p0.y) / (p(i).x - p0.x)) + 180
        End If
ElseIf p(i).y - p0.y < 0 Then
        If p(i).x - p0.x = 0 Then
           p(i).q = 270
        ElseIf p(i).x - p0.x > 0 Then
          p(i).q = 360 + 180 / pi * Atn((p(i).y - p0.y) / (p(i).x - p0.x))
        Else
          p(i).q = 180 + 180 / pi * Atn((p(i).y - p0.y) / (p(i).x - p0.x))
        End If
End If
       
Next i

End Sub

 楼主| 发表于 2006-5-12 22:29:00 | 显示全部楼层

[原创]

请各位高手帮忙啊

救命

发表于 2006-5-13 05:55:00 | 显示全部楼层
在Command2_Click中,n值是多少,在哪里确定?
 楼主| 发表于 2006-5-13 14:28:00 | 显示全部楼层
mccad发表于2006-5-13 5:55:00在Command2_Click中,n值是多少,在哪里确定?

随机的

在点击之前点个点多少点n为多少

上限为200

 楼主| 发表于 2006-5-14 22:26:00 | 显示全部楼层

[求助]

mccad发表于2006-5-13 5:55:00在Command2_Click中,n值是多少,在哪里确定?


这个问题已经解决了

还是要感谢你的热心帮忙

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-27 04:30 , Processed in 0.184059 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表