J JackieLee1979 Unregistered / Unconfirmed GUEST, unregistred user! 2008-03-15 #1 已知一个点P(Xp,Yp),已知一条线段的两个端点LB(Xlb,Ylb),LE(Xle,Yle)。求P关于线段(LB,LE)的对称点。 如能解决,送200分。绝不吝啬! 小弟痛苦几天了,希望高手指点!
J jenhon Unregistered / Unconfirmed GUEST, unregistred user! 2008-03-15 #2 解析几何的入门问题啊,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步垂直公式不能代入水平线或者垂线的,而水平线和直线的镜像坐标应该很容易求的,这里就不再敖述。
解析几何的入门问题啊,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步垂直公式不能代入水平线或者垂线的,而水平线和直线的镜像坐标应该很容易求的,这里就不再敖述。
L LSUPER Unregistered / Unconfirmed GUEST, unregistred user! 2008-03-15 #3 呵呵,NN 年没动过这个了,感觉利用坐标系的旋转、平移最方便啊 因为如果求 (Xp, Yp) 关于 X 轴的对称点直接就是 (Xp, -Yp) 所以先求出直线的斜角 a 和截取 l,让整个坐标旋转 -a,变成 Xp', Yp' 和 l' 然后再平移 -l' 得 Xp" 和 Yp" 此时的 Xp", -Yp" 逆向平移和旋转回去即可。 坐标轴的旋转对应乘上一个 2*2 的 cosa、sina 相关的矩阵 坐标轴平移对应于一个 2*1 矩阵的相加。 要直接的公式确实麻烦...
呵呵,NN 年没动过这个了,感觉利用坐标系的旋转、平移最方便啊 因为如果求 (Xp, Yp) 关于 X 轴的对称点直接就是 (Xp, -Yp) 所以先求出直线的斜角 a 和截取 l,让整个坐标旋转 -a,变成 Xp', Yp' 和 l' 然后再平移 -l' 得 Xp" 和 Yp" 此时的 Xp", -Yp" 逆向平移和旋转回去即可。 坐标轴的旋转对应乘上一个 2*2 的 cosa、sina 相关的矩阵 坐标轴平移对应于一个 2*1 矩阵的相加。 要直接的公式确实麻烦...
J jenhon Unregistered / Unconfirmed GUEST, unregistred user! 2008-03-17 #4 楼主还有疑问吗?如果没有,就给分结贴吧。 是不是要整个过程都做出来?