注册 登录
编程论坛 C++教室

怎样求两线相交的坐标

阿冲 发布于 2009-11-09 17:10, 1954 次点击
毫无头绪,请大家帮忙指点一下。
9 回复
#2
ml2325282009-11-09 17:31
1 x自增 y相减和很小的数比较 趋近于零 则交点找到
2 (1)取两个x的值 如果y1-y2的值 正负不同 则交点的x的值必然在两个x之间 (2)x3=(x1+x2)/2 得一个y1-y2的值 和(1)中的两个y1-y2的值比较取正负不同那个x值
 循环直到y1-y2的值和零相近为止 交点找到


[ 本帖最后由 ml232528 于 2009-11-9 17:39 编辑 ]
#3
阿冲2009-11-09 18:58
以下是引用阿冲在2009-11-9 17:10:48的发言:

毫无头绪,请大家帮忙指点一下。
还是看不明白,能详细的写下来吗??比如AB线和CD线,AB线A坐标B坐标,CD线C坐标和D坐标。怎样求AB线和CD线相交的坐标??
#4
flyingcloude2009-11-09 22:06
这个只要在程序中模拟用数学解题的过程,就可以求出交点了。
#5
leeco2009-11-09 22:26
A1*x+B1*y+C1 = 0
A2*x+B2*y+C2 = 0

x = |-C1 B1 |  y = | A1 -C1 |
    |-C2 B2 |      | A2 -C2 |

#6
rineshine2009-11-10 09:43
我也是不明白,能不能把代码写一下啊!谢谢了!!
#7
pangding2009-11-10 16:02
就是5楼说的那样。
给你两个直线的方程,让你求它们的交点你怎么解?不就是解方程吗(二元线性方程组)?
编程解这个方程组就行了。
#8
冰窟窿2009-11-12 15:58
#include <iostream.h>
void main(void)
{
    struct Line
    {
        int a,b;
    };

    Line line1,line2;
    cout<<"input a,b of line1 and line"<<endl;
    cin>>line1.a>>line1.b;
    cin>>line2.a>>line2.b;

    int x,y;
    x=(line2.b-line1.b)/(line1.a-line2.a);
    y=line1.a*x+line1.b;
    cout<<"The cross of line1 and line2 is "<<"("<<x<<","<<y<<")"<<endl;  
}
#9
dadongzicool2009-11-12 16:05
一切问题都转换成数学问题  把数学公式用程序编写出来即可
#10
hzyzxj2009-11-15 20:47
求个方程组就OK了。计算方法上讲的有具体算法。
1