已知线段x1,y1,x2,y2的起始坐标及长度如1000,若将其等分为100段,求每段的起始坐标

Description of your first forum.

已知线段x1,y1,x2,y2的起始坐标及长度如1000,若将其等分为100段,求每段的起始坐标

帖子hubo8888 » 星期五, 2006年7月7日 14:56


已知线段x1,y1,x2,y2的起始坐标及长度如1000,若将其等分为100段,求每段的起始坐标
 
 
 

已知线段x1,y1,x2,y2的起始坐标及长度如1000,若将其等分为100段,求每段的起始坐标

帖子michael.ma » 星期五, 2006年7月7日 15:24


a,b,c=1000  sinA= a/c  cosA=b/c
a1,b1, c1=10 第一段
a1=c1 * sin A
b1=c1 * cos A
 
 
 

已知线段x1,y1,x2,y2的起始坐标及长度如1000,若将其等分为100段,求每段的起始坐标

帖子hubo8888 » 星期五, 2006年7月7日 16:09


我的问题x1,y1起点坐标x2,y2终点坐标,假如长度为1000,求等分后的相关坐标michael.ma的这种算法是否符合,请详解,谢谢!
 
 
 

已知线段x1,y1,x2,y2的起始坐标及长度如1000,若将其等分为100段,求每段的起始坐标

帖子QSmile » 星期五, 2006年7月7日 16:50


太简单了.

用不了用什么 sin cos 的.

如果是我,我这样处理
var
 dx:double;
 dy:double;

dx := (x2-x1) / 100;
dy := (y2-y1) /100;

每段的 dx,dy 相加就可以了. 与 x1.y1 到 x2,y2 的长度1000 是无关的.
 
 
 

已知线段x1,y1,x2,y2的起始坐标及长度如1000,若将其等分为100段,求每段的起始坐标

帖子QSmile » 星期五, 2006年7月7日 16:52


补充.

因为第 n 个线段的终于,就是 第 n+1 个线段的起点.
p(n+1).x := p(n).x + dx;
p(n+1).y := p(n).y + dy;
 
 
 

已知线段x1,y1,x2,y2的起始坐标及长度如1000,若将其等分为100段,求每段的起始坐标

帖子QSmile » 星期五, 2006年7月7日 16:54


就可以推导出
p(n).x := p0.x + n * dx;
p(n).y := p0.y + n * dy;

这里
p0.x = x1;
p0.y = y1;
 
 
 

已知线段x1,y1,x2,y2的起始坐标及长度如1000,若将其等分为100段,求每段的起始坐标

帖子moshengren2000 » 星期五, 2006年7月7日 16:57


同意楼上意见
 
 
 

已知线段x1,y1,x2,y2的起始坐标及长度如1000,若将其等分为100段,求每段的起始坐标

帖子ahhlian » 星期五, 2006年7月7日 23:54


同意QSmile的说法,其实很简单,别想复杂了,长度根本没用的。
 
 
 

已知线段x1,y1,x2,y2的起始坐标及长度如1000,若将其等分为100段,求每段的起始坐标

帖子shenzhou_nz » 星期二, 2006年7月25日 12:25


too easy!!!
 
 
 

已知线段x1,y1,x2,y2的起始坐标及长度如1000,若将其等分为100段,求每段的起始坐标

帖子weiliu » 星期二, 2006年7月25日 12:37


如果是直线的话,只接等分线段就可以了,这个是小学数学吧。
 
 
 

已知线段x1,y1,x2,y2的起始坐标及长度如1000,若将其等分为100段,求每段的起始坐标

帖子寻路 » 星期二, 2006年7月25日 15:06


function LinePoint(l1, l2, x1, x2, y1, y2: Integer): TPoint;
begin
 Result.X := Round((l2 * (x2 - x1)) / l1 + x2);
 Result.Y := Round((l2 * (y2 - y1)) / l1 + y2);
end;
 
 
 

已知线段x1,y1,x2,y2的起始坐标及长度如1000,若将其等分为100段,求每段的起始坐标

帖子太阳河上 » 星期二, 2006年7月25日 15:14


QSmile说法正确