Vb.net 排除图形路径中的区域
我正在使用GDI,并试图从顶视图绘制一个对象。我想画一个有脚的圆形脚凳,但当你从上面看时,只能看到主圆圈外的脚 我看到了很多外切的例子,但我想把圆内的每一个东西都剪下来,然后画出圆的轮廓 下面是示例代码,演示我要做的事情。可能很简单,我试过包括region.exclude,但没有任何效果Vb.net 排除图形路径中的区域,vb.net,gdi,Vb.net,Gdi,我正在使用GDI,并试图从顶视图绘制一个对象。我想画一个有脚的圆形脚凳,但当你从上面看时,只能看到主圆圈外的脚 我看到了很多外切的例子,但我想把圆内的每一个东西都剪下来,然后画出圆的轮廓 下面是示例代码,演示我要做的事情。可能很简单,我试过包括region.exclude,但没有任何效果 Dim bmp As New Bitmap(500, 500) Dim g As Graphics = Graphics.FromImage(bmp) g.Clear(Color.Tra
Dim bmp As New Bitmap(500, 500)
Dim g As Graphics = Graphics.FromImage(bmp)
g.Clear(Color.Transparent)
g.SmoothingMode = SmoothingMode.HighQuality
g.PixelOffsetMode = PixelOffsetMode.Default
' Add 4 Feet
Dim npoints As Point() = {New Point(50, 5), New Point(95, 50), New Point(50, 95), New Point(5, 50), _
New Point(5, 5), New Point(90, 90), New Point(0, 0), New Point(100, 100)}
Dim gp As New GraphicsPath
Dim p As Pen = New Pen(Color.DarkGray, 1)
Dim FeetSize As Size = New Size(10, 10)
For I As Integer = 0 To 3
gp.AddEllipse(New Rectangle(New Point(NPoints(I).X - (FeetSize.Width / 2), NPoints(I).Y - (FeetSize.Height / 2)), FeetSize))
Next
g.DrawPath(p, gp)
' I want to do clipping now; ie everything inside circle region below
' Then draw the main footstool circle
gp.Reset()
gp.AddEllipse(NPoints(4).X, NPoints(4).Y, NPoints(5).X, NPoints(5).Y)
g.DrawPath(p, gp)
' Set Picturebox Value
PictureBox1.Image = bmp
[更新]我找到了使用graphics.excludeclip的解决方案:
' Add Feet
Dim p As Pen = New Pen(Color.DarkGray, 1)
Dim FeetSize As Size = New Size(10, 10)
For I As Integer = 0 To 3
gp.AddEllipse(New Rectangle(New Point(NPoints(I).X - (FeetSize.Width / 2), NPoints(I).Y - (FeetSize.Height / 2)), FeetSize))
Next
' Clip Exclude Circle
Dim egp As New GraphicsPath
egp.AddEllipse(NPoints(4).X, NPoints(4).Y, NPoints(5).X, NPoints(5).Y)
g.ExcludeClip(New Region(egp))
' Draw Result
g.DrawPath(p, gp)
' Draw Circle
g.ResetClip()
gp.Reset()
gp.AddEllipse(NPoints(4).X, NPoints(4).Y, NPoints(5).X, NPoints(5).Y)
g.FillPath(New SolidBrush(FillColour), gp)
g.DrawPath(p, gp)
当我画这个的时候,我可以看到脚部的圆圈被上面的圆圈划破,所以我可以看到5个完整的圆圈,是不是不对?你能用你得到的图片和你想要的图片更新你的帖子吗?实际上Stackoverflow不允许我发布图片,因为我的评分现在太低了。这似乎是第二十二条军规。请务必处理
图形选项卡和笔-使用块非常有效。