| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 670 人关注过本帖
标题:这个方法,怎么实现啊。
只看楼主 加入收藏
tremere
Rank: 6Rank: 6
来 自:火星
等 级:侠之大者
帖 子:223
专家分:432
注 册:2013-3-11
结帖率:70.59%
收藏
已结贴  问题点数:20 回复次数:7 
这个方法,怎么实现啊。
定义一个类,类中包含适当的属性和一个方法,该方法的参数为点的坐标值,当有一个点时,该方法划一个点;当有
两个点时,在两点中间画一条直线;当有三个点时,画一个三角形。


望大家给个全代码,我仔细琢磨,还不懂的我会续贴的。
一直在C板块逛的,来学习C#,忘大家指教。
搜索更多相关主题的帖子: 三角形 
2013-07-04 15:41
QJlin
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:186
专家分:560
注 册:2013-5-18
收藏
得分:5 
那在那个类中定义三个方法,都用point来做参数不得了,还纠结什么?

慢慢前进走,不求一步登天,只求慢慢前进
2013-07-04 19:40
lantian8134
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:8
帖 子:115
专家分:789
注 册:2013-1-11
收藏
得分:5 
你要的类如下
程序代码:
class Drawer
    {
        private List<Point> pointGroup = new List<Point>();
        private System.Drawing.Graphics graphics;
        private System.Windows.Forms.Control control;
        public Drawer(System.Windows.Forms.Control control)
        {
            this.control = control;
            graphics = control.CreateGraphics();
        }

        public void Draw(int x, int y)
        {
            if (pointGroup.Count == 3)
            {
                pointGroup.Clear();
                control.Refresh();
            }
            Point p = new Point(x, y);
            Size size = new Size(1, 1);
            Pen pen = new Pen(System.Drawing.Brushes.Black);
            Rectangle rect = new System.Drawing.Rectangle(p, size);
            pointGroup.Add(p);
            if (pointGroup.Count == 1)
            {
                graphics.DrawEllipse(pen, rect);
            }
            else if (pointGroup.Count == 2)
            {
                graphics.DrawEllipse(pen, rect);
                graphics.DrawLine(pen, pointGroup[0], pointGroup[1]);
            }
            else if (pointGroup.Count == 3)
            {
                graphics.DrawEllipse(pen, rect);
                graphics.DrawLine(pen, pointGroup[1], p);
                graphics.DrawLine(pen, pointGroup[0], p);
            }
        }
    }

 
2013-07-04 20:50
yss0729
Rank: 3Rank: 3
来 自:江西 九江
等 级:论坛游侠
帖 子:43
专家分:197
注 册:2013-6-8
收藏
得分:5 
程序代码:
using System.Drawing;
using System.Windows.Forms;

namespace Test
{
    class MyPointPaint:Panel
    {
        
        private Point[] P;

        // p 为坐标集合
        public MyPointPaint(Point[] p):base()
        {
            this.P = p;
            this.Size = new Size(new Point(400, 400));
        }

        // 绘制
        protected override void OnPaint(PaintEventArgs e)
        {
            if (this.P.Length < 1) 
                return;
            base.OnPaint(e);
            Graphics g = e.Graphics;
            Pen pen =new Pen(SystemBrushes.GrayText);
            if (this.P.Length == 3)
            {
                g.DrawPolygon(pen, this.P); // 绘制三角形
            }
            else if (this.P.Length == 1)
            {
                g.DrawEllipse(pen, new Rectangle(this.P[0].X, this.P[0].Y, 2, 2)); //  绘制一个圆点
            }
            else if (this.P.Length == 2)
            {
                g.DrawLine(pen, this.P[0], this.P[1]); // 绘制一条直线
            }
            else
            {
                g.DrawLines(pen, this.P); // 绘制所有坐标结构的线段
            }
            g.Flush();
        }
        
    }
}

// Test code
Point p1 = new Point(100, 100);
            Point p2 = new Point(200, 200);
            Point p3 = new Point(300, 150);
            Point[] ps = new Point[3];
            ps[0] = p1;
            ps[1] = p2;
            ps[2] = p3;
            MyPointPaint pp = new MyPointPaint(ps);
            this.Controls.Add(pp);
2013-07-04 21:21
tremere
Rank: 6Rank: 6
来 自:火星
等 级:侠之大者
帖 子:223
专家分:432
注 册:2013-3-11
收藏
得分:0 
回复 2楼 QJlin
就是不会才问啊。不然你以为我想问啊。

极品菜鸟,来学习啦,啦啦啦啦啦啦啦。。。
2013-07-04 21:30
tremere
Rank: 6Rank: 6
来 自:火星
等 级:侠之大者
帖 子:223
专家分:432
注 册:2013-3-11
收藏
得分:0 
回复 3楼 lantian8134
我可以说我看不懂么?这道题目是多态,事件和借口 这部分的内容。有那么复杂么?

极品菜鸟,来学习啦,啦啦啦啦啦啦啦。。。
2013-07-04 21:35
QJlin
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:186
专家分:560
注 册:2013-5-18
收藏
得分:0 
以下是引用tremere在2013-7-4 21:35:09的发言:

我可以说我看不懂么?这道题目是多态,事件和借口 这部分的内容。有那么复杂么?

这个看不懂,那还是建议你去补习下GDI+吧!

慢慢前进走,不求一步登天,只求慢慢前进
2013-07-04 22:21
tremere
Rank: 6Rank: 6
来 自:火星
等 级:侠之大者
帖 子:223
专家分:432
注 册:2013-3-11
收藏
得分:0 
回复 7楼 QJlin
谢谢忠告,我刚学的C#。你说的什么也不知道是什么,我会去问度娘的

极品菜鸟,来学习啦,啦啦啦啦啦啦啦。。。
2013-07-04 23:59
快速回复:这个方法,怎么实现啊。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.069736 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved