9 个解决方案
#1
老大们,我算是服了你们了!!!
#2
这个题很难吗?
#3
你...是中学生?作业题?这也拿来问?哎,算了,有分给不管那么多。
首先保证点p(x1,y1)到线的距离〉=w(此时才有解);
然后,(x-x1)^2 + (y-y1)^2 = w 和 y = k*x + n 联立解方程就出来了.......
首先保证点p(x1,y1)到线的距离〉=w(此时才有解);
然后,(x-x1)^2 + (y-y1)^2 = w 和 y = k*x + n 联立解方程就出来了.......
#4
上面圆的方程应该是(x-x1)^2 + (y-y1)^2 = w^2,不好意思疏忽了。
#5
// 要求 Pt3到 pt1 与 pt2 组成的直线的距离小于一个特定的值。
function PtOnLine(pt1,pt2,pt3:TGuPoint):Boolean;
const
MIN_DELTA = 5;
var
pt4:TGuPoint;
k,n,n1:Single;
begin
Result := false;
if Pt2.X = pt1.X then
begin
n := abs(pt3.X - pt1.X);
end
else begin
k := (pt2.Y - pt1.Y )/(pt2.X - pt1.X);
if k <> 0 then
begin
n := pt1.Y - k* pt1.X;
n1 := pt3.Y + k * pt3.X;
pt4.Y := Round((n + n1)/2);
pt4.X := Round((pt4.Y -n) /k);
n := Round(sqrt((pt4.Y - pt3.Y )*(pt4.Y - pt3.Y ) +
(pt4.X - pt3.X )*(pt4.X - pt3.X )));
end
else begin
n := abs(pt3.Y - pt1.Y);
end;
end;
if n < MIN_DELTA then
Result := true;
end;
我做出来了。
function PtOnLine(pt1,pt2,pt3:TGuPoint):Boolean;
const
MIN_DELTA = 5;
var
pt4:TGuPoint;
k,n,n1:Single;
begin
Result := false;
if Pt2.X = pt1.X then
begin
n := abs(pt3.X - pt1.X);
end
else begin
k := (pt2.Y - pt1.Y )/(pt2.X - pt1.X);
if k <> 0 then
begin
n := pt1.Y - k* pt1.X;
n1 := pt3.Y + k * pt3.X;
pt4.Y := Round((n + n1)/2);
pt4.X := Round((pt4.Y -n) /k);
n := Round(sqrt((pt4.Y - pt3.Y )*(pt4.Y - pt3.Y ) +
(pt4.X - pt3.X )*(pt4.X - pt3.X )));
end
else begin
n := abs(pt3.Y - pt1.Y);
end;
end;
if n < MIN_DELTA then
Result := true;
end;
我做出来了。
#6
做出来了,值得庆贺!
#7
我都被弄糊涂了,这个问题到底要求什么?
==
已知一条直线 y = kx + n 。上有一点 (x1,y1) 求与这个点相距 w 的在直线上的点的坐标
==
已知一条直线 y = kx + n 。上有一点 (x1,y1) =》(x1,y1)是直线上的一个点。
与这个点相距 w 的在直线上的点 =》 要求的点也在直线上。
就是说直线上有两个点,相距w,已知一个,求另一个。
再看看你们的解答,我都不知道是我的理解有问题,还是你们的理解有问题,还是问题本身有问题。
==
已知一条直线 y = kx + n 。上有一点 (x1,y1) 求与这个点相距 w 的在直线上的点的坐标
==
已知一条直线 y = kx + n 。上有一点 (x1,y1) =》(x1,y1)是直线上的一个点。
与这个点相距 w 的在直线上的点 =》 要求的点也在直线上。
就是说直线上有两个点,相距w,已知一个,求另一个。
再看看你们的解答,我都不知道是我的理解有问题,还是你们的理解有问题,还是问题本身有问题。
#8
/
* Q(x,y)
/
/w
/
* P(x1,y1)
/
/
L
是不是上图那样:已知直线 L: y = kx + n 上有一点 P(x1,y1),
求与这个点P 相距为 w 的、在(同一)直线 L 上的点Q(x,y)的坐标x,y
#9
k=tan(a)
cos(a)=1/√(1+k*k)
sin(a)=k*cos(a)
x2=x1+w*cos(a),y2=y1+w*sin(a)
x3=x1-w*cos(a),y3=y1-w*sin(a)
cos(a)=1/√(1+k*k)
sin(a)=k*cos(a)
x2=x1+w*cos(a),y2=y1+w*sin(a)
x3=x1-w*cos(a),y3=y1-w*sin(a)
#1
老大们,我算是服了你们了!!!
#2
这个题很难吗?
#3
你...是中学生?作业题?这也拿来问?哎,算了,有分给不管那么多。
首先保证点p(x1,y1)到线的距离〉=w(此时才有解);
然后,(x-x1)^2 + (y-y1)^2 = w 和 y = k*x + n 联立解方程就出来了.......
首先保证点p(x1,y1)到线的距离〉=w(此时才有解);
然后,(x-x1)^2 + (y-y1)^2 = w 和 y = k*x + n 联立解方程就出来了.......
#4
上面圆的方程应该是(x-x1)^2 + (y-y1)^2 = w^2,不好意思疏忽了。
#5
// 要求 Pt3到 pt1 与 pt2 组成的直线的距离小于一个特定的值。
function PtOnLine(pt1,pt2,pt3:TGuPoint):Boolean;
const
MIN_DELTA = 5;
var
pt4:TGuPoint;
k,n,n1:Single;
begin
Result := false;
if Pt2.X = pt1.X then
begin
n := abs(pt3.X - pt1.X);
end
else begin
k := (pt2.Y - pt1.Y )/(pt2.X - pt1.X);
if k <> 0 then
begin
n := pt1.Y - k* pt1.X;
n1 := pt3.Y + k * pt3.X;
pt4.Y := Round((n + n1)/2);
pt4.X := Round((pt4.Y -n) /k);
n := Round(sqrt((pt4.Y - pt3.Y )*(pt4.Y - pt3.Y ) +
(pt4.X - pt3.X )*(pt4.X - pt3.X )));
end
else begin
n := abs(pt3.Y - pt1.Y);
end;
end;
if n < MIN_DELTA then
Result := true;
end;
我做出来了。
function PtOnLine(pt1,pt2,pt3:TGuPoint):Boolean;
const
MIN_DELTA = 5;
var
pt4:TGuPoint;
k,n,n1:Single;
begin
Result := false;
if Pt2.X = pt1.X then
begin
n := abs(pt3.X - pt1.X);
end
else begin
k := (pt2.Y - pt1.Y )/(pt2.X - pt1.X);
if k <> 0 then
begin
n := pt1.Y - k* pt1.X;
n1 := pt3.Y + k * pt3.X;
pt4.Y := Round((n + n1)/2);
pt4.X := Round((pt4.Y -n) /k);
n := Round(sqrt((pt4.Y - pt3.Y )*(pt4.Y - pt3.Y ) +
(pt4.X - pt3.X )*(pt4.X - pt3.X )));
end
else begin
n := abs(pt3.Y - pt1.Y);
end;
end;
if n < MIN_DELTA then
Result := true;
end;
我做出来了。
#6
做出来了,值得庆贺!
#7
我都被弄糊涂了,这个问题到底要求什么?
==
已知一条直线 y = kx + n 。上有一点 (x1,y1) 求与这个点相距 w 的在直线上的点的坐标
==
已知一条直线 y = kx + n 。上有一点 (x1,y1) =》(x1,y1)是直线上的一个点。
与这个点相距 w 的在直线上的点 =》 要求的点也在直线上。
就是说直线上有两个点,相距w,已知一个,求另一个。
再看看你们的解答,我都不知道是我的理解有问题,还是你们的理解有问题,还是问题本身有问题。
==
已知一条直线 y = kx + n 。上有一点 (x1,y1) 求与这个点相距 w 的在直线上的点的坐标
==
已知一条直线 y = kx + n 。上有一点 (x1,y1) =》(x1,y1)是直线上的一个点。
与这个点相距 w 的在直线上的点 =》 要求的点也在直线上。
就是说直线上有两个点,相距w,已知一个,求另一个。
再看看你们的解答,我都不知道是我的理解有问题,还是你们的理解有问题,还是问题本身有问题。
#8
/
* Q(x,y)
/
/w
/
* P(x1,y1)
/
/
L
是不是上图那样:已知直线 L: y = kx + n 上有一点 P(x1,y1),
求与这个点P 相距为 w 的、在(同一)直线 L 上的点Q(x,y)的坐标x,y
#9
k=tan(a)
cos(a)=1/√(1+k*k)
sin(a)=k*cos(a)
x2=x1+w*cos(a),y2=y1+w*sin(a)
x3=x1-w*cos(a),y3=y1-w*sin(a)
cos(a)=1/√(1+k*k)
sin(a)=k*cos(a)
x2=x1+w*cos(a),y2=y1+w*sin(a)
x3=x1-w*cos(a),y3=y1-w*sin(a)