用vb6,vc6可以画出这样的曲线吗?
[img=http://hi.csdn.net/space-8409715-do-album-picid-864917.html][/img] --------------------编程问答--------------------照片在这里
http://hi.csdn.net/space-8409715-do-album-picid-864917.html --------------------编程问答-------------------- 用picture控件来做 --------------------编程问答-------------------- [img=http://hi.csdn.net/space-8409715-do-album-picid-864917.html][/img]
--------------------编程问答-------------------- 类似绘制多边形并填充 --------------------编程问答-------------------- 可以啊,画出线很简单,但是填充这些不规则的区域就麻烦点。我帮你想想吧,想到了再上来。 --------------------编程问答-------------------- 我做了个差不多的控件,有网格,有刻度,有标签(标签里显示的是数字,具体标签里显示的东西可你根据你需要定做),可以以数组的方式输入点的坐标绘制成线,但是填充下面的区域难做点。你看看需不需要,是否合你用,合你用就传给你(免费的哦~~)。
行善~,行善~,助人乃快乐之本。 --------------------编程问答-------------------- 现在填充也可以了 --------------------编程问答--------------------
显然是可以画的,跟楼上要代码。 --------------------编程问答-------------------- 嘿,8楼的,你也不笨啊~~ --------------------编程问答-------------------- 用mschart --------------------编程问答-------------------- 这种图不难画. --------------------编程问答--------------------
--------------------编程问答-------------------- 这个应该没问题的 --------------------编程问答-------------------- 学习了
Option Explicit
Private Type Point
x As Long
y As Long
End Type
Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As Any, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
Private Declare Function Polygon Lib "gdi32" (ByVal hdc As Long, lpPoint As Any, ByVal nCount As Long) As Long
Private Declare Function FillRgn Lib "gdi32" (ByVal hdc As Long, ByVal hrgn As Long, ByVal hbrush As Long) As Long
Private Declare Function GetStockObject Lib "gdi32" (ByVal nIndex As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Const ALTERNATE = 1 ' ALTERNATE and WINDING are
Const WINDING = 2 ' constants for FillMode.
Const BLACKBRUSH = 4 ' Constant for brush type.
Private Const GRAY_BRUSH = 2
Private A(0 To 12) As Point
Private Sub Command1_Click()
Dim hbrush As Long
Dim hrgn As Long
Dim intP As Integer
Polygon Picture1.hdc, A(0), 13
hbrush = GetStockObject(GRAY_BRUSH)
hrgn = CreatePolygonRgn(A(0), 13, ALTERNATE)
If hrgn Then FillRgn Picture1.hdc, hrgn, hbrush
DeleteObject hrgn
Picture1.DrawWidth = 5
For intP = 0 To 9
Picture1.Line (A(intP).x, A(intP).y)-(A(intP + 1).x, A(intP + 1).y), vbBlue
Next intP
End Sub
Private Sub Form_Load()
Dim intP As Integer
For intP = 0 To 10
A(intP).x = intP * 60
A(intP).y = 300 - CInt(300 * Rnd)
Next intP
A(11).x = 600
A(11).y = 300
A(12).x = 0
A(12).y = 300
Me.ScaleMode = 3
Picture1.ScaleMode = 3
End Sub
补充:VB , 基础类