首页 | 互联网 | IT动态 | Cisco | Windows | Linux | Java | .Net | Oracle | 华为 | 存储世界 | 服务器 | 网络设备 | IDC | 安全 | 求职招聘
IT培训 | 数字网校 | 技术专题 | 电子书下载 | 教学视频 | 网页设计 | 平面设计 | 解决方案 | 直播室 | 虚拟考场 | 搜索 | 博客 | 沙龙 | 论坛
中国IT实验室Dotnet频道
中国IT教育
首页 ASP.NET  C#  XML/WebService ADO.NET VC.NET VB.NET .NET 资讯动态 专题 RSS订阅 讨论 下载
您现在的位置: 中国IT实验室 >> Dotnet >> VB.NET >> 文章正文

vb.net用Graphics画一个五角星

文章来源中国IT实验室收集整理 作者佚名 更新时间2007-12-24 保存本文保存本文 推荐给好友推荐给好友 收藏本页收藏本页

  要使用vb.net中的 Graphics 对象来绘制一个五角星,最重要的是需要获取五角星的10个点的坐标(5个顶点和5个凹点),这个需要通过数学公式来计算,但是我们这篇文章就不针对数学公式进行深入讨论,只来了解下 Graphics 对象绘制多边形的知识。

  Graphics 对象提供了 DrawPolygon 让我们绘制多边形区域的边,  FillPolygon  方法填充多边形区域。

  如下代码为绘制一个空心的五角星:

  Sub DrawStar(ByVal g As Graphics, ByVal center As Point, ByVal radius As Integer, ByVal isSolid As Boolean)

  Dim pts(9) As Point

  pts(0) = New Point(center.X, center.Y - radius)

  pts(1) = RotateTheta(pts(0), center, 36.0)

  Dim len As Double = radius * Math.Sin((18.0 * Math.PI / 180.0)) / Math.Sin((126.0 * Math.PI / 180.0))

  pts(1)。X = CInt(center.X + len * (pts(1)。X - center.X) / radius)

  pts(1)。Y = CInt(center.Y + len * (pts(1)。Y - center.Y) / radius)

  Dim i As Integer

  For i = 1 To 4

  pts((2 * i)) = RotateTheta(pts((2 * (i - 1))), center, 72.0)

  pts((2 * i + 1)) = RotateTheta(pts((2 * i - 1)), center, 72.0)

  Next i

  If isSolid = False Then

  Dim mPen As New Pen(New SolidBrush(Color.Blue))

  g.DrawPolygon(mpen, pts)'画一个空心五角星

  Else

  Dim mBrush As New SolidBrush(Color.Blue)

  g.FillPolygon(mBrush, pts)'画一个实心的五角星

  End If

  End Sub

  '旋转

  Function RotateTheta(ByVal pt As Point, ByVal center As Point, ByVal theta As Double) As Point

  Dim x As Integer = CInt(center.X + (pt.X - center.X) * Math.Cos((theta * Math.PI / 180)) - (pt.Y - center.Y) * Math.Sin((theta * Math.PI / 180)))

  Dim y As Integer = CInt(center.Y + (pt.X - center.X) * Math.Sin((theta * Math.PI / 180)) + (pt.Y - center.Y) * Math.Cos((theta * Math.PI / 180)))

  Return New Point(x, y)

  End Function

  DrawStar(ByVal g As Graphics, ByVal center As Point, ByVal radius As Integer, ByVal isSolid As Boolean)中center为五角星的中心点,radius为中心点到顶点的距离,可以成为它的半径,isSolid 指示画空心五角星还是实心五角星。

  然后我们在Button按钮的事件中加入如下调用代码:

  DrawStar(Me.CreateGraphics, New System.Drawing.Point(100, 100), 100, False)'画空心五角星

  DrawStar(Me.CreateGraphics, New System.Drawing.Point(300, 100), 100, True)'画实心五角星

  运行后如下图所示:

vb.net用Graphics画一个五角星

  图:运行效果图

  本例我们主要是了解 DrawPolygon 和  FillPolygon  方法。

【责编:John】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题
 ·展现C#世界 C#程序设计专题
 ·Java入门 Tomcat的配置技巧精华专题
 ·Oracle RMAN物理备份技术详解
 ·JAVA开发利器——JBuilder知多少
 ·Hello,web2.0技术进阶专题
 ·从入门到精通 java初学者实践系列教程
 今日更新
 社区讨论
 博客论点
 频道精选
 Dotnet频道相关导航