当前位置:编程学习 > JAVA >>

请教高手一个坐标的算法!!!!!

直角坐标系里有一个矩形 (可能向任何方向倾斜,也可能不),已知这个矩形的四个顶点的坐标,现在它的外面套了一个矩形,该矩形每条边到原来矩形相应边的距离都相等例如都是d,外面矩形四个顶点的坐标怎么求。 --------------------编程问答-------------------- 这个是一个纯数学的东西哦
--------------------编程问答-------------------- 如果计算另外一个矩形的四个坐标的话,你可以把两个矩形当成是两个同心圆上的矩形,这样可能会好算一些 --------------------编程问答-------------------- 能够预先知道哪些参数,你说的d,不靠谱的 --------------------编程问答-------------------- 矩形不是四边形,应该是直角的了。
假设矩形的四角坐标是:(x1,y1), (x2,y2), (x3,y3), (x4,y4)
外套矩形的四角坐标是:(x_1,y_1), (x_2,y_2), (x_3,y_3), (x_4,y_4)
距离是 d.



x_1 = x1 + d * ( (x1-x2)/r12 + (x1-x4)/r14 );
这里,
r12 = ((x1-x2)^2 + (y1-y2)^2)^(1/2);
r14 = ((x1-x4)^2 + (y1-y4)^2)^(1/2);

剩下的,以此类推。



--------------------编程问答--------------------
引用 4 楼 jswatcher 的回复:
......


花了几分钟推出来的,没有验证。你自已验证一下看看吧。
没时间,抱歉。 --------------------编程问答-------------------- 线段平移距离为d

向两侧延伸距离为d

都是二元一次方程 --------------------编程问答-------------------- 硬算可以出来,但是效率太差,有没有高效简便的算法 --------------------编程问答--------------------
引用 7 楼 u010052039 的回复:
硬算可以出来,但是效率太差,有没有高效简便的算法


引用 4 楼 jswatcher 的回复:
……
x_1 = x1 + d * ( (x1-x2)/r12 + (x1-x4)/r14 );
这里,
r12 = ((x1-x2)^2 + (y1-y2)^2)^(1/2);
r14 = ((x1-x4)^2 + (y1-y4)^2)^(1/2);
……

还有比这更简单的方法吗?
提示:r12, r14 是两点之间的距离,可以用 java.awt.geom.Point2D 的 distance() 函数,不用你自己算。
--------------------编程问答-------------------- 坐等高手..
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,