永发信息网

还是求点。已经一条直线上两点,和直线外一点

答案:6  悬赏:0  手机版
解决时间 2021-02-06 21:04
三点A,B,C (坐标A.x, A.y ......)
A、B是矩形的两端点
且C在与AB平行的 矩形另一边上 或其延长线上
求矩形另外两端点M、N
再求与MN夹角为45度,与M距离为10的点P
以及与MN夹角45度,与N距离为10的点Q
注:P、Q都在矩形内部
都是基础数学题,送分。200分。嘿嘿
最佳答案
void F(const CPoint &A, const CPoint &B, const CPoint &C,
CPoint &M, CPoint &N, CPoint &P, CPoint &Q)
{
double k; CPoint T;//设AB斜率k,垂足坐标T

//1. 计算AB斜率k和垂足坐标T
if (A.x==B.x) { T.x=A.x; T.y=C.y;}
else { k=double((A.y-B.y))/(A.x-B.x);
double Tx=(k * k * A.x + k * (C.y - A.y) + C.x) / (k * k + 1);
T.x=(long)Tx;
T.y=(long)( k * (Tx - A.x) + A.y);
}

//2. 计算M,N
M=C-T+A;
N=C-T+B;

double t,r;
struct point {double x,y;};
//3. 计算P;
//做矩形(A b P m), b在AB上,m在AM上。
point b,m;

//3.1 平移坐标原点到A,计算平移后B,M坐标
b.x=B.x-A.x; b.y=B.y-A.y; //B坐标
m.x=M.x-A.x; m.y=M.y-A.y; //M坐标

//3.2 B缩放变换到b点
r=sqrt(b.x*b.x+b.y+b.y);
t=10/r;
b.x*=t; b.y*=t;

//3.3 M缩放变换到m点
r=sqrt(m.x*m.x+m.y*m.y);
t=(r-10)/r;
m.x*=t; m.y*=t;

//3.4 计算坐标原点平移后的P点坐标
P.x=long(b.x+m.x);
P.y=long(b.y+m.y);

//3.5 平移坐标原点到原来坐标系原点
P+=A;

//4. 同样以B为坐标原点计算Q
//做矩形(B a Q n), a在AB上,n在BN上。
//平移坐标原点到B,下面计算平移后a,n坐标

point a,n;
a.x=A.x-B.x; a.y=A.y-B.y;
r=sqrt(a.x*a.x+a.y+a.y);
t=10/r;
a.x*=t; a.y*=t;

n.x=N.x-B.x; n.y=N.y-B.y;
r=sqrt(n.x*n.x+n.y*n.y);
t=(r-10)/r;
n.x*=t; n.y*=t;

Q.x=long(a.x+n.x);
Q.y=long(a.y+n.y);

Q+=B;
}

void main()
{
CPoint A(189,460);
CPoint B(278,29);
CPoint C(400,300);
CPoint M,N;
CPoint P,Q;
F(A,B,C,M,N,P,Q);
cout<<"A("<<A.x<<','<<A.y<<")\n";
cout<<"B("<<B.x<<','<<B.y<<")\n";
cout<<"M("<<M.x<<','<<M.y<<")\n";
cout<<"N("<<N.x<<','<<N.y<<")\n";
cout<<"P("<<P.x<<','<<P.y<<")\n";
cout<<"Q("<<Q.x<<','<<Q.y<<")\n";
cout<<"C("<<C.x<<','<<C.y<<")\n";

}
全部回答
可以借鉴作图法的原理 加上解析几何相佐即可求得 直线AB的方程式很容易写得出吧 过C点与AB斜率相等的直线方程式也容易得到 它就是MN的方程式 过A点与AB垂直的直线、过B点与AB垂直的直线 与MN的交点容易求得(就是M、N两点) P、Q两点也是用类似方法求得
可以借鉴作图法的原理 加上解析几何相佐即可求得 直线AB的方程式很容易写得出吧 过C点与AB斜率相等的直线方程式也容易得到 它就是MN的方程式 过A点与AB垂直的直线、过B点与AB垂直的直线 与MN的交点容易求得(就是M、N两点) P、Q两点也是用类似方法求得
可以借鉴作图法的原理 加上解析几何相佐即可求得 直线AB的方程式很容易写得出吧 过C点与AB斜率相等的直线方程式也容易得到 它就是MN的方程式 过A点与AB垂直的直线、过B点与AB垂直的直线 与MN的交点容易求得(就是M、N两点) P、Q两点也是用类似方法求得
小学文化做这题切不是对牛谈清
连接直线外的两点为一条线段,找到该线段的中点,在中点上画一条垂直于该线段的直线,这条直线与最初的直线相交的点,就是你想要的那个点。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
折叠过的人民币能用取款机存吗,几十张叠在一
(四方缘)生活馆副食棋牌室地址在什么地方,想
给某某某一个凸是什么意思?
云南大学和太原理工那个好
格利菲棋牌室地址在哪,我要去那里办事
挫折之后再次出发600字,写事的,谢谢啦
沈阳到笔架山庄怎么走最近
自由职业提前5年退休需要什么手续
宏达水果超市NO.10地址有知道的么?有点事想
以下哪种情况不需从速下胎A.胎死不下B.胎元不
江南褚氏茶业棋牌室地址在哪,我要去那里办事
棋乐棋牌室地址在什么地方,我要处理点事
为什么电脑关机之后移动鼠标就开机~谢谢各位
东华新村怎么去啊,有知道地址的么
简述霍夫斯泰德对文化维度理论的概念和特征的
推荐资讯
濮存昕和许晴的绯闻
中国写诗最多的人
脸上总起白头怎么回事
考研进考场临时身份证有用吗?进场是拿身份证
尚客优快捷酒店怀柔雁栖店这个地址在什么地方
诚信货运信息部地址有知道的么?有点事想过去
显得眼镜大还自然不明显的美瞳是哪款?
求岚的dandelion歌词有罗马音更好!!
开发商有权赠送露台吗?
坦克世界T43用什么炮
康桥养生会所我想知道这个在什么地方
潜江虹居宾馆怎么去啊,我要去那办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?