练习3距离交会

//距离交会
double dis_int()
{
    double bc_cal(double x1, double y1, double x2, double y2);
    double xa, ya, xb, yb;
    double r1, r2;
    double xp, yp;
    cout << "请输入A、B点坐标" << endl;
    cin >> xa >> ya >> xb >> yb;
    cout << "请输入r1、r2长度" << endl;
    cin >> r1 >> r2;
    double u, v, cosA, l, rab;
    int p;
    cout << "P在AB左侧输入1,在AB右侧输入-1" << endl;
    cin >> p;
    l = sqrt((xb - xa) * (xb - xa) + (yb - ya) * (yb - ya));
    cout << "l=" << l << endl;
    cosA = (l * l + r1 * r1 - r2 * r2) / (2 * r1 * l);
    cout << "cosA=" << setiosflags(ios::fixed) << setprecision(3) << cosA << endl;
    u = r1 * cosA;
    v = sqrt(r1 * r1 - u * u);
    cout << "rab=";
    rab = bc_cal(xa, ya, xb, yb);
    xp = xa + u * cos(rab) + p * v * sin(rab);
    yp = ya + u * sin(rab) - p * v * cos(rab);
    cout << "P点坐标为" << xp << "," << yp << endl;
    return 0;
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值