以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 不知这算不算一个bug (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=41503) |
-- 作者:东坡一剑 -- 发布时间:2013/10/21 11:57:00 -- 不知这算不算一个bug 帮助文件中有这样一段代码: Dim p As WinForm.Painter = e.Form.Controls("Painter1") 执行以后绘制出一个三角形。 如果我们将红色代码删掉,不会画出我们想象中的V形,而会从V形的最末一点引出一条通向(0,0)点的直线。 不管你将点设为几个,都将出现这个问题,除非你设为画一个封闭的多边形。 现在的问题是: 1、如果DrawLines仅仅是用于绘制多边形则显得多余,因为已经有了DrawPolygon. 2、当然,DrawLines还可以用来绘制非凸多边形,但是既然可以用指定点的方式来轻松达到这个目的,又为什么非要让它在参数为非封闭点集时拥有一个不伦不类的默认(0,0)点功能呢?这可真是一个画蛇添足的事。
大家可以测试一下,如果觉得我说得有道理,都向狐爸反映一下,看能不能改进。 |
-- 作者:狐狸爸爸 -- 发布时间:2013/10/21 12:00:00 -- Dim p As WinForm.Painter = e.Form.Controls("Painter1") Dim g As Graphics = p.Graphics Dim points(2) As Point points(0) = New Point(10, 10) points(1) = New Point(10, 100) points(2) = New Point(50, 10) g.DrawLines(Pens.Green, points) p.Repaint() |
-- 作者:东坡一剑 -- 发布时间:2013/10/21 12:16:00 -- 谢谢!学习了,唐突之处请见谅! |
-- 作者:狐狸爸爸 -- 发布时间:2013/10/21 12:40:00 -- 呵呵,没有唐突可言,有问题尽管上论坛提问。 |