快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

vb.net由点画曲线 vb 曲线

vb如何把已知点绘制成曲线

这是画点的:

公司主营业务:成都网站设计、做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出沁县免费做网站回馈大家。

Private Sub Form_Click()

Dim X(7) As Integer, Y(7) As Integer, i%

Form1.Scale (-15, 15)-(15, -15)

Form1.Line (0, 0)-(15, 0)

Form1.Line (0, 15)-(0, 0)

For i = 0 To 12 'Step 1.2 'X轴坐标

Form1.Line (i, 0.1)-(i, 0)

CurrentX = i

CurrentY = -1

Form1.Print i

Next i

For i = 0 To 12 'Step 1.2 'Y轴坐标

Form1.Line (0, i)-(0.3, i)

CurrentX = -0.5

CurrentY = i

Form1.Print i

Next i

X(0) = 0: X(1) = 2: X(2) = 4: X(3) = 6: X(4) = 8: X(5) = 10: X(6) = 12: X(7) = 14

Y(0) = 0: Y(1) = 1: Y(2) = 3: Y(3) = 4: Y(4) = 3: Y(5) = 2: Y(6) = 1: Y(7) = 0

For i = 0 To 7

Form1.PSet (X(i), Y(i)), vbRed

Next i

End Sub

在VB中如何通过已知的几个点绘制样条曲线

Function hypot(ByVal X As Single, ByVal Y As Single)

hypot = Sqr(X ^ 2 + Y ^ 2)

End Function

Sub tspLine(ByVal n As Integer, ByVal ch As Integer, ByVal tx1 As Single, ByVal tx2 As Single, ByVal ty1 As Single, ByVal ty2 As Single)

Dim a(1000) As Single, b(1000) As Single, c(1000) As Single, dX(1000) As Single, dY(1000) As Single

Dim qx(1000) As Single, qy(1000) As Single

Dim tt As Single, bx3 As Single, bx4 As Single, by3 As Single, by4 As Single

Dim cx As Single, cy As Single, t(1000) As Single, px(1000) As Single, py(1000) As Single

Dim u(3000) As Single, v(3000) As Single, i As Integer

num = 0

For i = 1 To n

t(i) = hypot(X(i) - X(i - 1), Y(i) - Y(i - 1))

Next i

Select Case ch

Case 0 '抛物条件

u(0) = (X(1) - X(0)) / t(1): u(1) = (X(2) - X(1)) / t(2)

u(2) = (u(1) - u(0)) / (t(2) + t(1))

tx1 = u(0) - u(2) * t(1)

u(0) = (Y(1) - Y(0)) / t(1): u(1) = (Y(2) - Y(1)) / t(2)

u(2) = (u(1) - u(0)) / (t(2) + t(1))

ty1 = u(0) - u(2) * t(1)

u(0) = (X(n) - X(n - 1)) / t(n): u(1) = (X(n - 1) - X(n - 2)) / t(n - 1)

u(2) = (u(0) - u(1)) / (t(n) + t(n - 1))

tx2 = u(0) + u(2) * t(n)

u(0) = (Y(n) - Y(n - 1)) / t(n): u(1) = (Y(n - 1) - Y(n - 2)) / t(n - 1)

u(2) = (u(0) - u(1)) / (t(n) + t(n - 1))

ty2 = u(0) + u(2) * t(n)

Case 1 '夹持条件

a(0) = 1: c(0) = 0: dX(0) = tx1: dY(0) = ty1

a(n) = 1: b(n) = 0: dX(n) = tx2: dY(n) = ty2

Case 2 '自由条件

a(0) = 2: c(0) = 1

dX(0) = 3 * (X(1) - X(0)) / t(1): dY(0) = 3 * (Y(1) - Y(0)) / t(1)

a(n) = 2: b(n) = 1

dX(n) = 3 * (X(n) - X(n - 1)) / t(n): dY(n) = 3 * (Y(n) - Y(n - 1)) / t(n)

Case 3 '循环条件

a(0) = 2: c(0) = 1

dX(0) = 3 * (X(1) - X(0)) / t(1) - (t(1) * (X(2) - X(1)) / t(2) - X(1) + X(0)) / (t(1) + t(2))

dY(0) = 3 * (Y(1) - Y(0)) / t(1) - (t(1) * (Y(2) - Y(1)) / t(2) - Y(1) + Y(0)) / (t(1) + t(2))

a(n) = 2: b(n) = 1

dX(n) = 3 * (X(n) - X(n - 1)) / t(n)

dX(n) = dX(n) + (X(n) - X(n - 1) - t(n) * (X(n - 1) - X(n - 2)) / t(n - 1)) / (t(n) + t(n - 1))

dY(n) = 3 * (Y(n) - Y(n - 1)) / t(n)

dY(n) = dY(n) + (Y(n) - Y(n - 1) - t(n) * (Y(n - 1) - Y(n - 2)) / t(n - 1)) / (t(n) + t(n - 1))

End Select

'计算方程组系数阵和常数阵

For i = 1 To n - 1

a(i) = 2 * (t(i) + t(i + 1)): b(i) = t(i + 1): c(i) = t(i)

dX(i) = 3 * (t(i) * (X(i + 1) - X(i)) / t(i + 1) + t(i + 1) * (X(i) - X(i - 1)) / t(i))

dY(i) = 3 * (t(i) * (Y(i + 1) - Y(i)) / t(i + 1) + t(i + 1) * (Y(i) - Y(i - 1)) / t(i))

Next i

'采用追赶法解方程组

c(0) = c(0) / a(0)

For i = 1 To n - 1

a(i) = a(i) - b(i) * c(i - 1): c(i) = c(i) / a(i)

Next i

a(n) = a(n) - b(n) * c(i - 1)

qx(0) = dX(0) / a(0): qy(0) = dY(0) / a(0)

For i = 1 To n

qx(i) = (dX(i) - b(i) * qx(i - 1)) / a(i)

qy(i) = (dY(i) - b(i) * qy(i - 1)) / a(i)

Next i

px(n) = qx(n): py(n) = qy(n)

For i = n - 1 To 0 Step -1

px(i) = qx(i) - c(i) * px(i + 1)

py(i) = qy(i) - c(i) * py(i + 1)

Next i

'计算曲线上点的坐标

For i = 0 To n - 1

bx3 = (3 * (X(i + 1) - X(i)) / t(i + 1) - 2 * px(i) - px(i + 1)) / t(i + 1)

bx4 = ((2 * (X(i) - X(i + 1)) / t(i + 1) + px(i) + px(i + 1)) / t(i + 1)) / t(i + 1)

by3 = (3 * (Y(i + 1) - Y(i)) / t(i + 1) - 2 * py(i) - py(i + 1)) / t(i + 1)

by4 = ((2 * (Y(i) - Y(i + 1)) / t(i + 1) + py(i) + py(i + 1)) / t(i + 1)) / t(i + 1)

tt = 0

While (tt = t(i + 1))

cx = X(i) + (px(i) + (bx3 + bx4 * tt) * tt) * tt

cy = Y(i) + (py(i) + (by3 + by4 * tt) * tt) * tt

u1(num) = cx: v1(num) = cy: num = num + 1: tt = tt + 0.5

Wend

u1(num) = X(i + 1): v1(num) = Y(i + 1): num = num + 1

Next i

End Sub

Private Sub Command1_Click()

Dim i As Long

'Picture1.Scale (0, 0)-(640, 550)

DrawWidth = 3

Picture1.Cls

'If Check1.Value Then Command2_Click

'X(0) = 1

'Y(0) = 1

'X(t - 1) = 638

'Y(t - 1) = 548

Picture1.ForeColor = QBColor(10)

For i = 0 To t - 1

Picture1.Line (X(i) - 1, Y(i) - 1)-(X(i) + 1, Y(i) + 1), QBColor(10), B

Picture1.Print i

Next i

Picture1.ForeColor = QBColor(12)

DrawWidth = 1

tspLine t - 1, 2, 0, 0, 0, 0

Picture1.PSet (u1(0), v1(0))

For i = 1 To num - 1

Picture1.Line -(u1(i), v1(i))

'For de = 1 To 12000: Next de 'Sleep 1

Next i

Picture1.ForeColor = QBColor(10)

For i = 0 To t - 1

Picture1.Line (X(i) - 1, Y(i) - 1)-(X(i) + 1, Y(i) + 1), QBColor(10), B

Picture1.Print i

Next i

End Sub

vb.net 绘制实时温度曲线

这个要用GDI+画。要看你.net版本。

以下是VS2005中的一段代码。

Me.PictureBox1.Height = 450

Me.PictureBox1.Width = 880

Dim gr As Graphics '定义画布

Dim bp As New Bitmap(880, 450) '定义位图,并进行赋值

Dim p As New Pen(Color.Black) '定义画笔

p.Width = 2 '宽度2

p.DashStyle = Drawing2D.DashStyle.Solid '样式直线

PictureBox1.Image = bp

gr = Graphics.FromImage(PictureBox1.Image)

gr.FillRectangle(Brushes.White, New Rectangle(0, 0, PictureBox1.Width, PictureBox1.Height))

gr.DrawLine(p, a, b, a, .Height - b) '绘制纵坐标

gr.DrawLine(p, a, .Height - b, .Width - a, .Height - b) '绘制横坐标

vb.net绘制曲线图

。net  其实还是很好绘制图形的

你可以看下 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


当前文章:vb.net由点画曲线 vb 曲线
分享地址:http://6mz.cn/article/doppdsh.html

其他资讯