Private Declare Function MoveToEx Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, lpPoint As Long) As Long
Private Declare Function LineTo Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
dim Data() as long
...
Sub DrawData(HDC as long, X0 as long,Y0 as long,XRatio as single,YRatio as long )
Dim I as long
dim Xb as long
dim Yb as long
dim Xe as long
Dim Ye as long
Xb=X0
Yb=Y0
For I = lbound(Data) To ubound(Data)
Xe = X0 + Int(I * XRatio)
Ye = Y0 + Int(Data(I) * YRatio)
MoveToEx HDC, Xb, Yb, Null
LineTo HDC, Xe, Ye
Xb = Xe
Yb = Ye
Next
End sub
如果楼主只是需要画出连续的线条而不不要平滑的话,
可以使用一个现成的API:Polyline
Declare Function Polyline Lib "gdi32" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long
该API可以根据给定的坐标结构数组画出一条连续曲线。
Private Declare Function MoveToEx Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, lpPoint As Long) As Long
Private Declare Function LineTo Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
Private Sub Command1_Click()
MoveToEx Picture1.hdc, 10, 10, ByVal 0&
LineTo Picture1.hdc, 1000, 1000
End Sub