重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
。net 其实还是很好绘制图形的
成都创新互联是一家网站设计公司,集创意、互联网应用、软件技术为一体的创意网站建设服务商,主营产品:响应式网站开发、高端网站设计、成都全网营销。我们专注企业品牌在网站中的整体树立,网络互动的体验,以及在手机等移动端的优质呈现。网站设计制作、网站制作、移动互联产品、网络运营、VI设计、云产品.运维为核心业务。为用户提供一站式解决方案,我们深知市场的竞争激烈,认真对待每位客户,为客户提供赏析悦目的作品,网站的价值服务。
你可以看下 Graphics 类
Dim d As New Bitmap(Me.Width, Me.Height) ‘一个图片吧
Dim g As Graphics = Graphics.FromImage(d)’绘制 准备在这个图片是进行
然后 就是你绘制的东西了
线 就是 g.DrawLine()
圆 弧度 就用 g.DrawArc(Pens.Black, New Rectangle(0, 0, 400, 200), 0, 360)
复杂的就是 g.DrawBezier()
等 如果你用的是 VS的 编译 上面都有详细的参数说明
Dim d As New Bitmap(Me.Width, Me.Height)
Dim g As Graphics = Graphics.FromImage(d)
g.DrawArc(Pens.Black, New Rectangle(0, 0, 200, 200), 0, 360)
g.DrawLine(Pens.Red, New Point(0, 0), New Point(200, 200))
g.DrawLines(Pens.Green, New Point() {New Point(0, 0), New Point(50, 40), New Point(50, 80), New Point(90, 70), New Point(100, 400)})
g.DrawBezier(Pens.Yellow, New Point(0, 100), New Point(0, 0), New Point(200, 0), New Point(200, 200))
g.Dispose()
Me.BackgroundImage = d
设数据放在D(10)这个数组中,最小值1最大值1000,加一picture,属性:width=1000,height=1000
for
i=1
to
10
picture1.line
((i-1)*100,d(i-1))-(i*100,d(i))
next
这只是简单的,至于其它数据,其它情况,或其它效果,只要改line后面的算法就可以了!
line
画线命令,格式:
line
(起点X坐标,起点Y坐标)-(终点X坐标,终点Y坐标),颜色
Private Sub PictureBox2_Paint(sender As Object, e As PaintEventArgs) Handles PictureBox2.Paint
Dim points As New List(Of Point)
points.Add(New Point(0, 0))
points.Add(New Point(1, 10))
points.Add(New Point(3, 15))
points.Add(New Point(14, 0))
points.Add(New Point(20, 60))
points.Add(New Point(40, 20))
points.Add(New Point(70, 50))
e.Graphics.DrawCurve(Pens.Red, points.ToArray)
End Sub
供参考,points可设为全局变量,那样add随便在哪增加,想要看见看上去动态的图,那就在新增完n个后,继续增加n+1个之时,放弃points中的第一个。
窗体上放三个按钮,一个图片框,看看效果?
Dim a(300) As Single
Private Sub Command1_Click()
Picture1.Cls
Dim i As Integer
Picture1.CurrentX = 0
Picture1.CurrentY = a(0)
For i = 1 To UBound(a)
Picture1.Line -(i * 30, a(i)) '以数组索引为X坐标,数值元素为Y坐标
Next
End Sub
Private Sub Command2_Click()
Picture1.Cls
Dim i As Integer
Picture1.CurrentX = a(0)
Picture1.CurrentY = a(1)
For i = 3 To UBound(a) Step 2
Picture1.Line -(a(i - 1), a(i))
'数组第一维为X坐标,第二维为Y坐标,以些类推。
'-(a(i - 1)这个参数前一个负数不是负数,是忽略的直线起点坐标,表示从当前默认坐标位置开始。
Next
End Sub
Private Sub Command3_Click() '生存数组随机值
Dim i As Integer
Randomize
For i = 0 To UBound(a)
a(i) = Round(3000 * Rnd, 2)
Next
End Sub
Private Sub Form_Load()
Picture1.AutoRedraw = True
Command3_Click
End Sub