一个比较弱智的问题。帮帮忙。(150分)

P

pander

Unregistered / Unconfirmed
GUEST, unregistred user!
我用要画一个封闭的四边形,已经知道了4个点的坐标,四个点A,B,C,D
用lineto画,一个点一个点的连接
比如 A->B->C->D->A
我怎样才知道A->B不是连接的对角线?
btw:这个多边形可一点都不规则。
 
对于凹的情况可能比较复杂!!!

我们分析凸的情况:
对于凸四边形:分别计算某点到其它三点的距离,最远的肯定是对角点。其它两个是相邻点。

对于凸多边形的情况稍微复杂一点!!!
首先通过计算距离的方法,获得某一点(P1)的相邻点(P2)。(距离最短)
然后求 P2 的相邻点(P),
这时如果 P<>P1 ,则已经找到。
如果 p=P1 ,求次最近点PP
但这时得到的PP不一定就是P2的相邻点。
很可能得到的是P1的另一相邻点,可以通过比较p1-PP和p2-pp的距离。
...............

也可以 通过计算重心的方法,然后用顺时针或逆时针方法来判断。
 
如果都不规则,则无所谓什么对角线了嘛!
 
算法我就不说了!

但是你画四边形,就应该抓住四边形的特点:

1、四边形是一个有四边的封闭图形!
2、连接四边形四边的四条线段相不相交(强调是不相交)
 
to:jsxjd,最长的怎么就是对角点了?又不是矩形。你自己画个菱形来看看?

如果是凸多边形,那么所有内角都小于180度。
从任意一点出发,连接其他三点,以最开始的那个点为顶点,必定有三个角,形成最大角
的那两个为邻边。
 
jsxjd,你的第一个方法显然不对了。没有哪个定理说四边形对角线最长,菱形就是例子。

 
一种适用于四边形的方法:
以横坐标为准,选出最小的。从这点连出到离他最近的两点(横坐标),在从这两点出发连到第四点。
要处理横坐标相同的特殊情况。
 
对,还有夹角的问题!
看来还是用重心的方法比较通用。
 
谢谢大家捧场,问题已经解决,是按照夹角的方法来做的。
 
顶部