c# 中获得连接两点(Point)间直线上所有点的坐标

System.Drawing.PointstartPoint=newPoint(a,b);System.Drawing.PointendPoint=newPoint(c,... System.Drawing.Point startPoint = new Point(a,b);
System.Drawing.Point endPoint = new Point(c,d);

获得两点间直线上的点的坐标
展开
 我来答
ThinkIBM
2010-08-27 · TA获得超过5289个赞
知道大有可为答主
回答量:3263
采纳率:0%
帮助的人:5474万
展开全部
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);
}
}
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
曼联的日子
2010-08-27 · TA获得超过490个赞
知道小有建树答主
回答量:578
采纳率:0%
帮助的人:260万
展开全部
List<Point> pointList = new List<Point>();
for(int i=a;i<=c;i++)
{
for(int j=b;j<=d;j++)
{
pointList.add(new Point(i,j));
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhentamadebt
2010-08-27 · 超过22用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:0
展开全部
兄弟,直线上的点是无限多的,即使考虑float数据的精度,也是一个很大的量,而且没啥意义。

一般只会考虑看某点是否在直线上之类的问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
草薙在
2010-08-27 · TA获得超过4795个赞
知道大有可为答主
回答量:6187
采纳率:50%
帮助的人:6307万
展开全部
计算线性插值就行了啊,取x的差乘以t然后加上开始的x值求出插值位置x值,y同理
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
eshangui
2010-08-27 · TA获得超过1353个赞
知道小有建树答主
回答量:5594
采纳率:0%
帮助的人:1895万
展开全部
利用直线的两点式方程:
(y-y0)/(x-x0) = (y1-y0)/(x1-x0)
具体到这个问题,就是(y-b)/(x-a) = (d-b)/(c-a),即:y=(d-b)/(c-a)*(x-a)+b
代码如下:
for(int x = a+1; x < c; i++)
{
int y = System.Math.Round((double)(d-b)/(c-a)*(x-a)+b);
}
这样每次循环的x,y值就是两点间直线上点的坐标(经过舍入的),如果是想求数学上的两点,可以这样:
for(double x = a+1; x < c; i++)
{
double y = (double)(d-b)/(c-a)*(x-a)+b;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式