api 函数+解析几何曲线方程

解决方案 »

  1.   

    下面是一个示范,但是贝塞尔曲线怎么弄我就不好搞了。'F1(X)和F2(Y)可以是个方程也可以是一个数组。Private Sub Form_Load()
      For X = 0 To 100
        Picture1.PSet (X, F1(X)), RGB(0, 0, 0)
      Next
      
      For Y = 0 To 100
        Picture1.PSet (F2(Y), Y), RGB(0, 0, 0)
      NextEnd SubFunction F1(ByVal pX As Double) As Double
      'Y=F1(X)
      F1 = Sqr(Abs(pX ^ 2 - 100 ^ 2))
    End FunctionFunction F2(ByVal pY As Double) As Double
      'X=F2(Y)
      F2 = Sqr(Abs(pY ^ 2 - 100 ^ 2))
    End Function
    Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
      'F(Y)-MX<1 Or F(X)-MY<1
      If Abs(F1(X) - Y) < 1 Or Abs(F2(Y) - X) < 1 Then
          '在曲线上
          Text1.Text = "Over" & " " & F1(X) & " " & X
        Else
          '不在曲线上
          Text1.Text = "Out" & " " & F1(X) & " " & X
      End If
    End Sub
      

  2.   

    用API中的getcursorpos()获得光标的纵横坐标,再判断这个点在不在那条曲线上的点的集合,不知行不行。