房天下 > 房天下问答 > 业主生活 > 其他
  • ```````VB中实现这个代码会提示溢出为什么?

    Sub DdaLine(x1 As Integer, y1 As Integer, x2 As Integer, y2 As Integer, c As Long) Dim dx As Integer Dim dy As Integer Dim x As Integer Dim y As Integer Dim p As Integer Dim const1 As Integer Dim const2 As Integer Dim inc As Integer Dim tmp As Integer dx = x2 - x1 dy = y2 - y1 If (dx * dy >= 0) Then inc = 1 Else inc = -1If (Abs(dx) > Abs(dy)) Then If (dx < 0) Then tmp = x1 x1 = x2 x2 = tmp tmp = y1 y1 = y2 y2 = tmp dx = -dx dy = -dy End If p = 2 * dy - dx const1 = 2 * dy const2 = 2 * (dy - dx) x = x1 y = y1 Me.PSet (x, y), c While (x < x2) x = x + 1 If (p < 0) Then p = p + const1 Else y = y + inc p = p + const2 End If Me.PSet (x, y), c Wend Else If (dy < 0) Then tmp = x1 x1 = x2 x2 = tmp tmp = y1 y1 = y2 y2 = tmp dx = -dx dy = -dy End If p = 2 * dy - dx const1 = 2 * dy const2 = 2 * (dy - dx) x = x1 y = y1Me.PSet (x, y), c While (y < y2) y = y + 1 If (p < 0) Then p = p + const1 Else x = x + inc p = p + const2 End If Me.PSet (x, y), c Wend End IfEnd If End Sub

    提问者:音乐狂潮

    发布于2011-01-01

共1个回答
  • zhai_miaomiao 丨Lv 0
    If (dx * dy >= 0) Then 里 dx * dy 溢出 Integer 了,改为If (dx >= 0 And dy >= 0) Or (dx <= 0 And dy <= 0) Then
    +12 2011-01-01 举报
热门人气推荐
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。