早教吧 育儿知识 作业答案 考试题库 百科 知识分享

已知矩形的两个对角坐标,以及旋转的角度,求其余两个角的坐标,最好有Java程序已知矩形的两个对角坐标(起点、终点坐标),以及旋转的角度(以矩形的中心点旋转,可以是任意角度,包括负角

题目详情
已知矩形的两个对角坐标,以及旋转的角度,求其余两个角的坐标,最好有Java程序
已知矩形的两个对角坐标(起点、终点坐标),以及旋转的角度(以矩形的中心点旋转,可以是任意角度,包括负角),求其余两个角的坐标,最好有Java程序,
▼优质解答
答案和解析
无论矩形怎么转,矩形的四个顶点都在以对角线为直径的圆上,通过已知的两点坐标可以算出一条对角线的斜率,
再通过旋转角你就可以算出两条对角线的夹角,用夹角公式算出另一条对角线的方程,和圆的方程联立即可.
假设已知点(x1,y1),(x2,y2) 那么对角线交点(圆心)为((x1+x2)/2,(y1+y2)/2)记为(x0,y0),
所以圆方程(x-x0)^2 + (y-y0)^2 = r^2 (r为已知两点距离的一半)
算出斜率 k=(y2-y1)/(x2-x1),注意判断x2-x1为不为0.
用反正切计算出倾斜角a,加上旋转角b,则两条对角线夹角为180-(a+b-90),这样你就能算出另一条对角线的斜率,
过圆心,所以另一条对角线的方程就得到了,联立圆的方程解出两个解就行了.
写程序时请注意判断:
1、x2-x1是不是为0
2、算出的反正切的角是和X轴的夹角,所以要减去90度,这里注意判断如果旋转角为0,特殊处理
大概就这样了.