| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 447 人关注过本帖
标题:错在哪?
只看楼主 加入收藏
hailingmm
Rank: 2
等 级:论坛游民
帖 子:96
专家分:15
注 册:2009-10-15
结帖率:91.67%
收藏
已结贴  问题点数:5 回复次数:7 
错在哪?
程序代码:
 int a, b, c;
        Graphics g;
        Color c2 = new Color();
        Color c3 = new Color();
        Color c4 = new Color();
        Color c5 = new Color();
        private void picturebox1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            Point mouseDownLocation = new Point(e.X, e.Y);
            Bitmap box1 = new Bitmap(pictureBox1.Image);
            int a, b, c;
            a = mouseDownLocation.X;
            b = mouseDownLocation.Y;
            c = pictureBox1.Image.Height;
            Color c1 = Color.FromArgb(0, 0, 0);
            for (int i = b; i < c; i++)
            {
                if (box1.GetPixel(a, i) == c1)
                {
                    return;//找到相应点,返回相应坐标
                    b = i;
                }
            }
            return;//找不到相应点,返回0,0
            c2 = box1.GetPixel(a, b - 1);
            c3 = box1.GetPixel(a, b);
            c4 = box1.GetPixel(a, b + 1);
            c5 = box1.GetPixel(a, b + 2);
           
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int gray2, gray3, gray4, gray5;
            gray2 = (c2.R + c2.G + c2.B) / 3;
            gray3 = (c3.R + c3.G + c3.B) / 3;
            gray4 = (c4.R + c4.G + c4.B) / 3;
            gray5 = (c5.R + c5.G + c5.B) / 3;
            Pen p = new Pen(Color.Black, 1);
            Point pt1 = new Point(b - 1, gray2);
            Point pt2 = new Point(b, gray3);
            Point pt3 = new Point(b + 1, gray4);
            Point pt4 = new Point(b + 2, gray5);
            g.DrawBezier(p, pt1, pt2, pt3, pt4);
        }
运行时老是出错,谁能帮帮我查查错在哪?
寻找点.rar (33.95 KB)
2010-03-28 15:26
ouxianzhi520
Rank: 8Rank: 8
来 自:重庆
等 级:蝙蝠侠
威 望:3
帖 子:245
专家分:932
注 册:2007-12-1
收藏
得分:0 
你想实现一个什么 样的功能。你的g没有指定对象。
for (int i = b; i < c; i++)
            {
                if (box1.GetPixel(a, i) == c1)
                {
                    return;//找到相应点,返回相应坐标
                    b = i;
                }
            }
            return;//找不到相应点,返回0,0
            c2 = box1.GetPixel(a, b - 1);
            c3 = box1.GetPixel(a, b);
            c4 = box1.GetPixel(a, b + 1);
            c5 = box1.GetPixel(a, b + 2);
这段代码中既然return 返回 了,余下的语句就不能执行了。没有效果 的。

[url=http://blog./ouxianzhi520]csdn个人博客[/url]
2010-03-28 15:44
hailingmm
Rank: 2
等 级:论坛游民
帖 子:96
专家分:15
注 册:2009-10-15
收藏
得分:0 
回复 2楼 ouxianzhi520
return返回的坐标值放在哪了?我想要把得到的坐标值存起来怎么弄?
2010-03-28 15:50
hailingmm
Rank: 2
等 级:论坛游民
帖 子:96
专家分:15
注 册:2009-10-15
收藏
得分:0 
回复 2楼 ouxianzhi520
我刚按你说的改了,但是画出
寻找点.rar (34.68 KB)
来的图不是我想要的,C#中画曲线用哪个指令?
2010-03-28 15:53
ouxianzhi520
Rank: 8Rank: 8
来 自:重庆
等 级:蝙蝠侠
威 望:3
帖 子:245
专家分:932
注 册:2007-12-1
收藏
得分:0 
private void picturebox1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
这个是一个事件过程。返回类型为void型 ,是不能返回 坐标值的。
你可以另外定义一个函数来实现这个返回的坐标功能,这个mouseDown事件调用这个过程,就可以得到 一个返回 值 了。
我对于这个画图也不是很明白。只知道一点点相关的。

[url=http://blog./ouxianzhi520]csdn个人博客[/url]
2010-03-28 15:54
hailingmm
Rank: 2
等 级:论坛游民
帖 子:96
专家分:15
注 册:2009-10-15
收藏
得分:0 
回复 5楼 ouxianzhi520
还是不明白,能不能举个例子?
2010-03-28 16:03
ouxianzhi520
Rank: 8Rank: 8
来 自:重庆
等 级:蝙蝠侠
威 望:3
帖 子:245
专家分:932
注 册:2007-12-1
收藏
得分:5 
比如说一个求和的例子
private int qiuHe(int a,int b)
{
    int sum = a +b ;
    return sum;        //这就是要返回的结果,也是正确的
    //这后面的两句代码 永远得不了执行。
    sum = 0;
    return sum;
}

你的程序就有这样的代码,在return 后面还有一些语句。这些语句是不能被执行到的。你可以查看一下return语句的说明,是一个怎么样的过程。我可能说得不是很明白。

[url=http://blog./ouxianzhi520]csdn个人博客[/url]
2010-03-28 16:26
hailingmm
Rank: 2
等 级:论坛游民
帖 子:96
专家分:15
注 册:2009-10-15
收藏
得分:0 
回复 5楼 ouxianzhi520
我要实现的功能是在那条水平线的垂直方向上取几个点,这几个点必须穿过那条水平线,在得到这几个点后,通过这几个点的灰度值绘制一条曲线。
2010-03-28 16:28
快速回复:错在哪?
数据加载中...
 
   



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

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