没有合适的资源?快使用搜索试试~ 我知道了~
beizer曲线算法(vb)
5星 · 超过95%的资源 需积分: 10 14 下载量 169 浏览量
2012-04-25
20:42:00
上传
评论
收藏 3KB TXT 举报
温馨提示
试读
3页
beizer算法的vb版 贝塞尔曲线(Bézier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋,我们在绘图工具上看到的钢笔工具就是来做这种矢量曲线的。 贝赛尔曲线的每一个顶点都有两个控制点,用于控制在该顶点两侧的曲线的弧度。它是应用于二维图形应用程序的数学曲线。曲线的定义有四个点:起始点、终止点(也称锚点)以及两个相互分离的中间点。滑动两个中间点,贝塞尔曲线的形状会发生变化。
资源推荐
资源详情
资源评论
Public Class frmBezier
Private PtAry As New List(Of PointF)
Private SelState As Boolean '是否是选择控制多边形状态
Private g As Graphics
Private Sub CmdSelPoints_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdSelPoints.Click
SelState = True
PtAry.Clear()
PictureBox1.Refresh()
g = PictureBox1.CreateGraphics
End Sub
Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
If SelState = True And e.Button = Windows.Forms.MouseButtons.Left Then PtAry.Add(New PointF(e.X, e.Y))
If e.Button = Windows.Forms.MouseButtons.Right Then SelState = False
If SelState = True And PtAry.Count >= 2 Then
g.DrawLine(Pens.Brown, PtAry(PtAry.Count - 2), New PointF(e.X, e.Y))
End If
End Sub
Private Sub CmdDrawBezier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdDrawBezier.Click
If (PtAry.Count - 4) Mod 3 <> 0 Then
MsgBox("库函数只提供了4个控制点组成的贝塞尔曲线绘制方法,你选择的点数可为4,7,10,13,16,..." & vbCrLf & "其它数字不可以!", MsgBoxStyle.Critical, "提示")
Exit Sub
Else
g.DrawBeziers(Pens.BlueViolet, PtAry.ToArray) '只能绘制4个点的倍数组成的贝塞尔曲线
End If
End Sub
Private PtAry As New List(Of PointF)
Private SelState As Boolean '是否是选择控制多边形状态
Private g As Graphics
Private Sub CmdSelPoints_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdSelPoints.Click
SelState = True
PtAry.Clear()
PictureBox1.Refresh()
g = PictureBox1.CreateGraphics
End Sub
Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
If SelState = True And e.Button = Windows.Forms.MouseButtons.Left Then PtAry.Add(New PointF(e.X, e.Y))
If e.Button = Windows.Forms.MouseButtons.Right Then SelState = False
If SelState = True And PtAry.Count >= 2 Then
g.DrawLine(Pens.Brown, PtAry(PtAry.Count - 2), New PointF(e.X, e.Y))
End If
End Sub
Private Sub CmdDrawBezier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdDrawBezier.Click
If (PtAry.Count - 4) Mod 3 <> 0 Then
MsgBox("库函数只提供了4个控制点组成的贝塞尔曲线绘制方法,你选择的点数可为4,7,10,13,16,..." & vbCrLf & "其它数字不可以!", MsgBoxStyle.Critical, "提示")
Exit Sub
Else
g.DrawBeziers(Pens.BlueViolet, PtAry.ToArray) '只能绘制4个点的倍数组成的贝塞尔曲线
End If
End Sub
资源评论
- smilelidan2019-07-03很好的代码,值得参考
wing_wxy
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功