高分求:如何在winform指定区域用一组坐标画多边形的C# 实现方法!

skykevin 2007-04-30 10:16:05
用一组二维x,y坐标,求在form1中某个区域内,用给出的坐标画出多边形的C#实现方法.不能使用第三方组件,用GDI.
...全文
1029 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
nierenyi 2011-09-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hbxtlhx 的回复:]
.NET Framework 类库

Graphics.DrawPolygon 方法 (Pen, Point[])

绘制由一组 Point 结构定义的多边形。

命名空间:System.Drawing
程序集:System.Drawing(在 system.drawing.dll 中)

参数
pen
Pen,它确定多……
[/Quote]

你能解释一下这个指标位置之间的关系吗,有什么规律可言,我怎么去改变他的位置
BlueDog 2007-05-03
  • 打赏
  • 举报
回复
一是取PictureBox的客户区大小,然后计算坐标转换
需要注意的是的逻辑坐标与绘图坐标是不同的
将 x - > gx y - >gy
二是取PictureBox的CreateGraphics创建绘图板
用Graphics对象的DrawPolygon绘制多边形
释放Graphics对象
三如果你需要保存该多边形,可能需要考虑重绘,那就需要用链表之类的来保存该
数据。
skykevin 2007-05-03
  • 打赏
  • 举报
回复
顶,我想在picturebox中画出多边形,代码如何组织?
skykevin 2007-05-02
  • 打赏
  • 举报
回复
顶,我想在picturebox中画出多边形,代码如何组织?
CathySun118 2007-05-01
  • 打赏
  • 举报
回复
学习
skykevin 2007-05-01
  • 打赏
  • 举报
回复
我想在picturebox中画出多边形,代码如何组织?
zouqiang122 2007-04-30
  • 打赏
  • 举报
回复
up...
北京的雾霾天 2007-04-30
  • 打赏
  • 举报
回复
你也可以使用Graphics.TranslateTransform 方法
通过使此 Graphics 的变换矩阵左乘指定的平移来更改坐标系统的原点。
再有如
Graphics.TranslateClip 方法
Graphics.TransformPoints 方法
Graphics.Transform 属性
都和这个有关
北京的雾霾天 2007-04-30
  • 打赏
  • 举报
回复
使用Graphics.SetClip 方法 可以设置Grahics的所画的区域.
hawking106123 2007-04-30
  • 打赏
  • 举报
回复
Graphics g=This.CreateGaphics();
g.DrawPolygon(......)
2维数组也是一维数组的集合.
skykevin 2007-04-30
  • 打赏
  • 举报
回复
如何把它画在,form中的一块区域中?
北京的雾霾天 2007-04-30
  • 打赏
  • 举报
回复
.NET Framework 类库

Graphics.DrawPolygon 方法 (Pen, Point[])

绘制由一组 Point 结构定义的多边形。

命名空间:System.Drawing
程序集:System.Drawing(在 system.drawing.dll 中)

参数
pen
Pen,它确定多边形的颜色、宽度和样式。

points
Point 结构数组,这些结构表示多边形的顶点。
数组中的每对相邻的两个点指定多边形的一条边。另外,如果数组的最后一个点和第一个点不重合,则这两个点指定多边形的最后一条边。


下面的代码示例设计用于 Windows 窗体,它需要 PaintEventArgse(这是 Paint 事件处理程序的参数)。代码执行下列操作:

创建黑色钢笔。

创建一个数组,该数组由表示多边形顶点的七个点组成。

将该多边形绘制到屏幕。

public void DrawPolygonPoint(PaintEventArgs e)
{

// Create pen.
Pen blackPen = new Pen(Color.Black, 3);

// Create points that define polygon.
Point point1 = new Point(50, 50);
Point point2 = new Point(100, 25);
Point point3 = new Point(200, 5);
Point point4 = new Point(250, 50);
Point point5 = new Point(300, 100);
Point point6 = new Point(350, 200);
Point point7 = new Point(250, 250);
Point[] curvePoints =
{
point1,
point2,
point3,
point4,
point5,
point6,
point7
};

// Draw polygon to screen.
e.Graphics.DrawPolygon(blackPen, curvePoints);
}

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧