标题:用C# 语言如何获取一条斜线上的所有像素点的坐标
只看楼主
someday
Rank: 3Rank: 3
来 自:保定
等 级:论坛游侠
帖 子:83
专家分:116
注 册:2010-10-8
结帖率:70.59%
已结贴  问题点数:20 回复次数:2 
用C# 语言如何获取一条斜线上的所有像素点的坐标
用C#语言如何获取一条斜线上的所有像素点的坐标?
搜索更多相关主题的帖子: 语言 如何 
2013-03-29 16:11
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
得分:20 
先要知道两个点,然后就能算出斜率,用直线方程就能算出来了,下面借用了一段网上的代码,用于参考吧
Point a = new Point(1, 1);
Point b = new Point(9, 9);
// 循环x坐标
for (int i = a.X + 1; i < b.X; i++)
{
    // 计算斜率
    double k = ((double) (a.Y - b.Y))/(a.X - b.X);
    // 根据斜率,计算y坐标
    double y = k*(i - a.X) + a.Y;
    // 简单判断一下y是不是整数
    double d = y - (int) y;
    if (0.001 > d && d > -0.001)
    {
        Console.Write("点的坐标:{0},{1}", i, y);
    }
}
2013-03-29 20:15
someday
Rank: 3Rank: 3
来 自:保定
等 级:论坛游侠
帖 子:83
专家分:116
注 册:2010-10-8
得分:0 
回复 2楼 yhlvht
a(0,0),b(5,600)这种情况下计算出来最多5个点,而我想要的是ab这段斜线上的每一个点,肯定会大于600个点的,我想做的是让一个控件从a点匀速移动到b这个点,再夸张点,a(0,0),b(1,600),按照版主的计算方法走的话一步就到b点了,不能这么走啊
2013-04-01 08:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-402283-1-1.html




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

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