程序员求助 平面坐标计算

来源:百度知道 编辑:UC知道 时间:2024/06/17 17:02:25
如图 在平面坐标系内已知 坐标数值 (X1, Y1) (X2, Y2) (A, B)蓝色三角形和绿色三角形相似: (A, B)对应(X1, Y1); 问号(?)对应(X2, Y2)(0, 0)为原点求 问号(?)处的坐标因为是绘图算法里面要用 最好给个比较方便的表达式 表列方程我平面几何和解方程太烂 谢谢大家了图片看不清楚 请点这里:

绿色三角形的两边上的单位向量:
(X1/(X1^2+Y1^2)^(1/2),Y1/(X1^2+Y1^2)^(1/2))
(X2/(X2^2+Y2^2)^(1/2),Y2/(X2^2+Y2^2)^(1/2))
设它们的夹角a
则:cosa=(X1/(X1^2+Y1^2)^(1/2),Y1/(X1^2+Y1^2)^(1/2))*(X2/(X2^2+Y2^2)^(1/2),Y2/(X2^2+Y2^2)^(1/2))
=X1X2/((X1^2+Y1^2)(X2^2+Y2^2))^(1/2) + Y1Y2/((X1^2+Y1^2)(X2^2+Y2^2))^(1/2)
=(X1X2+Y1Y2)/((X1^2+Y1^2)(X2^2+Y2^2))^(1/2)
所以:a=arccos((X1X2+Y1Y2)/((X1^2+Y1^2)(X2^2+Y2^2))^(1/2))
而:线段(0,0)-->(A,B),与X轴的夹角b=arctan(B/A)
所以:线段(0,0)-->(?),
与X轴的夹角=a+b=arccos((X1X2+Y1Y2)/((X1^2+Y1^2)(X2^2+Y2^2))^(1/2)) + arctan(B/A)
线段(0,0)-->(?)的长度L=((A^2+B^2)**(X2^2+Y2^2)/(X1^2+Y1^2))^(1/2)

所以:
问号(?)处的X坐标
=L*cos(a+b)
=((A^2+B^2)**(X2^2+Y2^2)/(X1^2+Y1^2))^(1/2) * cos(arccos((X1X2+Y1Y2)/((X1^2+Y1^2)(X2^2+Y2^2))^(1/2)) + arctan(B/A))
问号(?)处的Y坐标
=L*sin(a+b)
=((A^2+B^2)**(X2^2+Y2^2)/(X1^2+Y1^2))^(1/2) * sin(arccos((X1X2+Y1Y2)/((X1^2+Y1^2)(X2^2+Y2^2))^(1/2)) + arctan(B/A))

估计 10钟没人理你

设?处坐标为(x,y)