当前位置:编程学习 > C#/ASP.NET >>

一个数学问题

知道一个平面内的四个点的坐标,如何确定这四个点构成的几何图形是长方形??? --------------------编程问答-------------------- 如果,只认为类似:(0,0),(100,0),(0,50),(100,50).才是长方型的话,那么根据坐标运算.很容易知道..

如果斜的也算长方形.
可以计算长度..

两点长计算公式:根号(x1-x2)2 + (y1-y2)2. [ (x1-x2)2后面的2表示的是平方] --------------------编程问答-------------------- 4条边22相等,有一个角90度 --------------------编程问答-------------------- 1.4个点分成两两一组 ,每组之间的距离相等(有3次,另外3次是重复的)
2.把上面算出来的最长的一组的平方等于另外两组距离平方的和(勾股定理)
3.满足以上两点就是矩形  --------------------编程问答-------------------- 1.如果点是无序的,就先排序,从某个点开始,返回下一个离它最近的点作为当前点;这些数据将作为下一步判断对边、邻边的基础。
2.判断对边是否均相等,如果不等,则返回非。
3.由相邻两边及对角线组成一个三角形,如果该三角形的邻边的平方和==对角线的平方,则返回是,否则返回非。
--------------------编程问答-------------------- 1.如果点是无序的,就先排序,从某个点开始,返回下一个离它最近的点作为当前点;这些数据将作为下一步判断对边、邻边的基础。 
2.判断对边是否均相等,如果不等,则返回非。 
3.由相邻两边及对角线组成一个三角形,如果该三角形的邻边的平方和==对角线的平方,则返回是,否则返回非。 --------------------编程问答-------------------- 先随便取3个点,确认是否直角三角形,然后取剩下的一点到两个非直角处的点的距离,看是否和两直角边相等. --------------------编程问答-------------------- 6条边(包括对角线)两两相等就行了。。 --------------------编程问答-------------------- 即AB=CD,AC=BD,AD=BC。。这要就能证明是正方形了。。 --------------------编程问答-------------------- 将四个点按x,y排序,类似于数据库中的Order by x,y
如果0点和1点的x相等,2点和3点的x相等,且,0点和2点的y相等,1点和3点的y相等,且
0点的x不等于2点的x,0点的y不等于1点的y,则四点成矩形 --------------------编程问答-------------------- 郁闷,忘了考虑四点任意的情况了。
--------------------编程问答-------------------- 6条边,两两相等即可。 --------------------编程问答-------------------- 我有一个比较高效率的方法.因为两条垂直的边的矢量积为0.设有三个点A(x0,y0),B(x1,y1),c(x2,y2)
则当(x1-x0)*(y2-y1)+(x2-x1)(y1-y0)==0时,角ABC就为直角
这样效率应该会好一点 --------------------编程问答-------------------- A B C D 四点,任取三个点,比如A B C 如果 A  B  C三点围成的是直角三角形,再利用 A B C 中的任意两点加上D点,再围成一个三角形,如果也是直角三角形,并且 两个三角形的面积一样 ,则是四方形 --------------------编程问答-------------------- 呵呵,对边平行,邻边直角(呵呵,实际是4个角都是直角就成了) --------------------编程问答-------------------- 还有一种方法
就是求两条对角线的交点,只要交点在个对角线的中心,那么他就是长方形 --------------------编程问答-------------------- 将四个点按x,y排序,类似于数据库中的Order by x,y 
其中0点与3点是对角点,1点和2点是对角点,
如果0与1点的x坐标之差等于2与3点的坐标之差,且0与1点的y坐标之差等于2与3点的y坐标之差,则四点成平行四边形
如果两对角点的线段长度相等,则为矩形
嘿嘿 --------------------编程问答-------------------- 数学学的不好,基本一点头绪都没有,谢谢楼上各位!我已经明白了,我要加分,散!
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,