关于点按照给定直线镜像的问题(急切,能解决放血200分)(200分)

  • 主题发起人 主题发起人 JackieLee1979
  • 开始时间 开始时间
J

JackieLee1979

Unregistered / Unconfirmed
GUEST, unregistred user!
已知一个点P(Xp,Yp),已知一条线段的两个端点LB(Xlb,Ylb),LE(Xle,Yle)。求P关于线段(LB,LE)的对称点。
如能解决,送200分。绝不吝啬!
小弟痛苦几天了,希望高手指点!
 
解析几何的入门问题啊,20多年没碰过了,我试试看。
1、线段的2个坐标,确定一个直线方程:
(X-Xle)/(Xlb-Xle)-(Y-Yle)/(Ylb-Yle)=0
==>(1/(Xlb-Xle))*X-(1/(Ylb-Yle))*Y+(Yle/(Ylb-Yle)-Xle/(Xlb-Xle))=0 <直线方程1>
(直线方程式为 aX+bY+c=0
这里可以得到:
a=(1/(Xlb-Xle))
b=-(1/(Ylb-Yle))
c=(Yle/(Ylb-Yle)-Xle/(Xlb-Xle))
)
2、由上步得知:已知线段的斜率就是a/(-b),那么经过P(Xp,Yp)、垂直于LB-LE线段的斜率就是b/a(斜率垂直公式 k1*k2=-1 (水平线和垂直线要另外判断,否则会导致除零))
得到垂直于已知线段的直线公式:
Y-Yp=b/a *(X-Xp)
=>-(1/(Ylb-Yle)) /(1/(Xlb-Xle))*X-Y+(Yp- (-(1/(Ylb-Yle)) /(1/(Xlb-Xle)))Xp)=0 <直线方程2>

(得到所求镜像点和P的直线方程)
3、假设所求镜像点坐标为P2(Xp2,Yp2),那么 P-P2线段的中点在<直线方程1>上面,代入方程1即:
(1/(Xlb-Xle))*((Xp2+Xp)/2)-(1/(Ylb-Yle))*((Yp2+Yp)/2)+(Yle/(Ylb-Yle)-Xle/(Xlb-Xle))=0
==> ????Xp2+?????Yp2+???=0
4、根据2、3步的2条公式,就是二元一次方程式求解,应该很容易得到结果。

注意的是,要在计算之前,要先判断已知线段是 水平线或者 垂线,因为第2步垂直公式不能代入水平线或者垂线的,而水平线和直线的镜像坐标应该很容易求的,这里就不再敖述。
 
呵呵,NN 年没动过这个了,感觉利用坐标系的旋转、平移最方便啊
因为如果求 (Xp, Yp) 关于 X 轴的对称点直接就是 (Xp, -Yp)
所以先求出直线的斜角 a 和截取 l,让整个坐标旋转 -a,变成 Xp', Yp' 和 l'
然后再平移 -l' 得 Xp" 和 Yp"
此时的 Xp", -Yp" 逆向平移和旋转回去即可。
坐标轴的旋转对应乘上一个 2*2 的 cosa、sina 相关的矩阵
坐标轴平移对应于一个 2*1 矩阵的相加。
要直接的公式确实麻烦...
 
楼主还有疑问吗?如果没有,就给分结贴吧。

是不是要整个过程都做出来?
 
谢谢各位
 
后退
顶部