编程问题,大家帮帮忙。
八月 3, 2007
发表在: java
来个技术问题了,请大家帮帮忙。给出若干点,依次用直线连接,怎么知道最后的图形是顺时针,逆时针?
比如(0,0)(0,1)(1,1)(1,0)这四点依次连接,应该是一个顺时针方向的正方形。
谢谢!!!
电脑软件技术推荐:
取最左边的一条线,
如果该线是自上而下的,则该图形为逆时针
如果是自下而上的,则该图形为顺时针
假设所连接的n+1个点为a0->a1->a2->...->an->a0。
连接a1->an,分两种情况讨论:
(1)如果a0点在a1->a2->...->an->a1外部,考虑a0->a1,a1->an,an->a0三线之间的关系,
以a0为原点,a0->a1为x轴正向,建立直角坐标系,如果an在x轴下方,则为顺时针。
如果在x轴上方,则为逆时针。
(1)如果a0点在a1->a2->...->an->a1内部,考虑a0->a1,a1->an,an->a0三线之间的关系,
以a0为原点,a0->a1为x轴正向,建立直角坐标系,如果an在x轴下方,则为逆时针。
如果在x轴上方,则为顺时针。
呵呵,是我疏忽了
不过我现在可以证明你的问题无解了............
就考虑两个点的情况,现在你的条件只有两个点,比如和,然后从第一个点到第二个点有一条线进行连接,从第二个点到第一个点又有一条线连接,但根本不知道这两条线在x轴的上面还是下面,也不可能判断出来,因为本来就有四种组合。你必须给你的连线作某种限制!!!
呵呵,你的题目明显需要加强条件,否则的结果就是顺时针或者是逆时针了,我想如果你的题目是cad软件的一部分的话,你必须去挖掘其中的规律,进一步加强条件~
No comments in this entry