pen主要画线(直线、矩形、圆等)
brush主要用于填充
imports System.Drawingimports System.MathPublic Class Form1 Dim gr As Graphics Dim pen1 As New System.Drawing.Pen(color.Black,3) Dim bp As System.Drawing.Bitmap Const pi As Single = 3.14159 Private Sub button1_Click(sender As Object,e As EventArgs) Handles button1.Click PictureBox1.Refresh() pen1.DashStyle = drawing2d.DashStyle.Dot pen1.color = color.Blue gr = PictureBox1.CreateGraphics gr.Drawline(pen1,100,300) '画椭圆 pen1.DashStyle = drawing2d.DashStyle.DashDotDot '重设线型 pen1.color = color.BlueViolet gr.DrawEllipse(pen1,10,200,200) gr.dispose() End Sub Private Sub button2_Click(sender As Object,e As EventArgs) Handles button2.Click PictureBox1.Refresh() pen1.color = color.Green pen1.DashStyle = drawing2d.DashStyle.Dot pen1.WIDth = 1 Dim x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,r,s,t,u As Single For a As Single = 0 To 2 * pi Step pi / 120 x1 = 240 + 30 * Cos(a) y1 = 160 + 15 * Sin(a) r = 60 * (1 + 1 / 6 * Sin(3 * a)) s = 80 * (1 + 1 / 6 * Sin(4 * a)) t = 100 * (1 + 1 / 6 * Sin(5 * a)) u = 140 * (1 + 1 / 8 * Sin(6 * a)) x2 = r * Cos(a + pi / 20) + 240 y2 = r * Sin(a + pi / 20) + 160 x3 = s * Cos(a) + 240 y3 = s * Sin(a) + 160 x4 = t * Cos(a + pi / 20) + 240 y4 = t * Sin(a + pi / 20) + 160 x5 = 1.5 * u * Cos(a) + 240 y5 = u * Sin(a) + 160 pen1.color = color.Red gr = PictureBox1.CreateGraphics gr.Drawline(pen1,x1,y2) pen1.color = color.BlueViolet gr.Drawline(pen1,y3) pen1.color = color.Red gr.Drawline(pen1,y4) pen1.color = color.GreenYellow gr.Drawline(pen1,y5) Next End Sub Private Sub button3_Click(sender As Object,e As EventArgs) Handles button3.Click 'HatchBrush() 阴影笔刷 'linearGradIEntBrush 线性渐变笔刷 'SolIDBrush 单色笔刷 'TextureBrush 纹理笔刷 'PathGradIEntBrus 渐变色填充 '阴影笔刷(十字图案) Dim br1 As System.Drawing.drawing2d.HatchBrush br1 = New System.Drawing.drawing2d.HatchBrush(drawing2d.HatchStyle.Cross,color.Red,color.Black) gr = PictureBox1.CreateGraphics gr.FillEllipse(br1,250,150) br1.dispose() '线性渐变笔刷 Dim br2 As System.Drawing.drawing2d.linearGradIEntBrush Dim p1 As New Point(140,140) 'p1,p2控制渐变频率 Dim p2 As New Point(160,170) br2 = New System.Drawing.drawing2d.linearGradIEntBrush(p1,p2,color.Black) gr.FillRectangle(br2,150,50) br2.dispose() '渐变色填充(不规则或多边形) Dim p(2) As Point '建立path p(0).X = 0 : p(0).Y = 0 p(1).X = 20 : p(1).Y = 10 p(2).X = 11 : p(2).Y = 22 Dim br3 As System.Drawing.drawing2d.PathGradIEntBrush br3 = New System.Drawing.drawing2d.PathGradIEntBrush(p,Drawing.drawing2d.WrapMode.Tile) br3.Centercolor = color.Blue '中心色 br3.Surroundcolors = New color() {color.Red,color.Green,color.Black} '边沿色对应各点数,除非是圆(一种色) br3.CenterPoint = New Point(11,15) '指定中心点 gr.FillEllipse(br3,100) br3.dispose() End Sub Private Sub button4_Click(sender As Object,e As EventArgs) Handles button4.Click PictureBox1.Refresh() End SubEnd Class
仔细一看上面PathGradIEntBrush笔刷,发现每个不规则封闭图形中好像有“间距”,
我们放大看一下,原来,并不是间距,而是以这个不规则图外沿作为一个矩形,“平辅”到整个图形中。
添加一下辅助线,就可以清晰看出它成图的原因了:
总结
以上是内存溢出为你收集整理的笔记一:画笔、笔刷认识全部内容,希望文章能够帮你解决笔记一:画笔、笔刷认识所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)