问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

一道求轨迹的题目 已知线段AB等于定长2a,动点M到A的距离是到B的距离的2倍,求点M的轨迹方程

发布网友 发布时间:2022-04-12 16:36

我来回答

2个回答

懂视网 时间:2022-04-12 20:58

题目链接:http://acm.timus.ru/problem.aspx?space=1num=1348 题目的意思是:求一个点到线段的最短距离和最长距离。。 最长距离比较容易,就是求点到线段两个端点较长的那个距离就是ans。 最短距离就比较有意思了。。。 可能的情况就是点到线段的垂线的垂足

题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1348

题目的意思是:求一个点到线段的最短距离和最长距离。。

最长距离比较容易,就是求点到线段两个端点较长的那个距离就是ans。

最短距离就比较有意思了。。。

可能的情况就是点到线段的垂线的垂足在线段内,还有就是垂足在线段外。。。

在线段内的话,那么应用叉积求面积+底面长度可以求得垂线长度也就是最短距离。。

如果在线段外的话,最短距离就是点到线段的两个端点的最小值。。

那么问题就来了。。怎么判断垂足在线段内还是在线段外的呢??

详细见代码。 - - 。。。

Code:

#include 
#include 
#include 
#include 
#include 
using namespace std;

const double eps = 1e-8;
const double pi = acos(-1);
//点
struct POINT
{
 double x, y;
 POINT(){ }
 POINT(double a, double b){
 x = a;
 y = b;
 }
};
//线段
struct Seg
{
 POINT a, b;
 Seg() { }
 Seg(POINT x, POINT y){
 a = x;
 b = y;
 }
};

//直线
struct Line
{
 POINT a, b;
 Line() {}
 Line(POINT x, POINT y){
 a = x;
 b = y;
 }
};

//叉乘
double cross(POINT o, POINT a, POINT b)
{
 return (a.x - o.x) * (b.y - o.y) - (b.x - o.x) * (a.y - o.y);
}

//求两点间的距离
double dis(POINT a, POINT b)
{
 return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
}
Seg s;
POINT p;
double L;
//点到直线的距离..
double PointToLine(POINT p, Line l)
{
 return fabs(cross(p, l.a, l.b)) / dis(l.a, l.b);
}
//线段到直线的距离..
double PointToSeg(POINT p, Seg s)
{
 POINT tmp = p;
 tmp.x += s.a.y - s.b.y;
 tmp.y += s.b.x - s.a.x;
 if(cross(s.a, p, tmp) * cross(s.b, p, tmp) >= 0){
 return min(dis(p, s.a), dis(p, s.b));
 }
 return PointToLine(p, Line(s.a, s.b));
}

void solve()
{
 double ans1 = PointToSeg(p, s), ans2 = max(dis(p, s.a), dis(p, s.b));
 printf("%.2lf
%.2lf
", ans1 > L ? ans1 - L : 0, ans2 > L ? ans2 - L : 0);
 return ;
}

int main()
{
// freopen("11.txt", "r", stdin);
 while(~scanf("%lf %lf %lf %lf", &s.a.x, &s.a.y, &s.b.x, &s.b.y)){
 scanf("%lf %lf %lf", &p.x, &p.y, &L);
 solve();
 }
 return 0;
}

--->

好吧,还需要好好的学习。。。

热心网友 时间:2022-04-12 18:06

假设AB中点为原点,AB在X轴,A(-a,0),B(a,0)
M(X,Y)
依题意:
√[(-a-x)^2+y^2]=2√[(a-x)^2+y^2
整理:
x^2-y^2-10ax/3+a^2=0
(x-5a/3)^2-y^2=(4a/3)^2
M的轨迹方程:
(x-5a/3)^2-y^2=(4a/3)^2
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
胜达这款车百公里油耗多少? 胜达节能油加盟办厂可靠吗是不是骗子 河南洛阳胜达就是骗子,我把钱交了也不来人了,他们一个老总说了爱咋办... 胜达油是个骗局吗 胜达节能油是什么? 叩解度关于叩解的论述 湿重跟湿重有关的打浆磨片 戴尔XPS M1330-950重要参数 如果到别的单位去面试的话 如果人家问起为什么会选择这家公司而离开另外... 学生会被两个部门同时面试怎么办 昆山壹叶房产信息咨询有限公司怎么样? 篆字壹叶龛怎么写 无锡壹叶网络科技有限公司怎么样? 手机qq邮箱怎么发邮件?麻烦大家指导下,谢谢了 壹叶渔船俩小童 壹叶香茶叶店怎么样 武汉壹叶科技创意有限公司怎么样? 手机QQ邮箱怎么发送电脑上的文件 武夷山壹叶传奇茶文化生态有限公司怎么样? 闽南壹叶注册过商标吗?还有哪些分类可以注册? 手机qq邮箱邮件怎么上传到电脑 匠心壹叶茶贵吗? Linux 在“/etc/ppp”目录下创建一个名为“options”的普通文件 linux系统中 在/etc目录中创建一个脚本文件test.sh,要求能够显示系统引导时的信息 1. Linux中如何创建/etc/hello/temp.txt文件? 给移动电源充电,要充多久?? 新买的移动电源需要用完电后,再充吗? 歌曲的名子,电视剧尾歌 刚买来的移动电源(电量是百分之九十九)要充电吗?还是说直接可以充手机了 vmware 桥接网卡后 ping值延迟 星河滚烫,爱车星越就是我的人间理想 偲恋qq单向好友删除检测工具能用么 湖南壹叶慧兰文化发展有限公司怎么样? 单向qq好友删除器有比较好用的吗 安徽潜山县产的壹叶香茶是绿茶还是红茶? 昆明壹叶好商贸有限公司怎么样? 这是一台年轻人无法抗拒的车型 最高优惠3.2万的吉利星越了解一下 忽复乘舟梦曰边,壹叶渔船俩小童。是指什么生肖?求解 忽复乘舟梦日边,壹叶渔船俩小童指什么肖 吉利汽车星越有优惠吗 忽复乘舟梦日边.壹叶渔船俩小童是什么生肖 做独特的自己,选动感的星越!谈谈自己的用车感受 一周年浅谈星越,拥有它,够格评价它 人生第一辆车,吉利嘉际圆了我的汽车梦 光阴若电,岁月不逮,提车途岳,从此开始我的幸福人生 解梦 灰猫 梦见猫失足高空摔伤腿,接着被大群狗追着围攻咬惨? 梦见一只大黑猫,跟我挺要好的,还跟我一被窝睡觉。我平时特别喜欢猫。 梦见猫一直缠着自己,自己把猫的牙齿打断,自己也受伤了是什么意思? 梦到家里养的一只猫,本来就脚受伤,后来从头顶处摔下来死了,刚好掉在我面前