发一个算法问题

clear_zero 2010-07-21 04:06:18
如图所示,(请忽略图上的误差,默认三个多边形四边长度相等,倾角相等)

蓝色多边形和矩形是橙色多边形和矩形旋转得来,绿色多边形和矩形是橙色多边形和矩形镜面效果后得来

已知橙色多边形的各点坐标,橙色矩形的各点坐标。

现有一多边形(绿色,各点坐标已知),我如何知道绿色多边形是橙色多边形的镜面效果?

现有一多边形(蓝色,各点坐标已知),我如何知道绿色多边形是橙色多边形旋转的效果?

另外如果取橙色矩形左下角坐标为基准,如何找到蓝色矩形及绿色矩形相应点的坐标

实际应用中三套图形分别在不同的文件中,所以三套坐标之间没有联系。

谢谢


...全文
401 54 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
54 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2010-07-29
  • 打赏
  • 举报
回复
of123 说了那么多,与我 31楼的方法有什么不同?
of123 2010-07-29
  • 打赏
  • 举报
回复

找到同一图形的镜像或旋转,点对应的问题就迎刃而解。

将比对相同的图形,各点进行比对前的逆处理(平移、旋转或翻转),逆处理前后各点的坐标,就是对应点。
of123 2010-07-29
  • 打赏
  • 举报
回复

进一步展开一下利用矩形解决旋转的问题。

1 找到矩形。实际上这一步包含很多算法。

2 判断矩形的一边与 Y 轴的夹角。

3 如果是 0 或 90 度,有 4 种可能:全图旋转了 0 度,90 度,180 度或 270 度。
按四种情况,逐一进行回转、归一平移、逐点比较。

4 如果是其他角度,首先旋转此夹角(锐角),使其成为上例情况。后同。

计算处理与人工智能最大的不同在于,计算处理常常是利用计算机的速度进行遍历或穷举。

proer9988 2010-07-28
  • 打赏
  • 举报
回复
图像学 AI
liguicd 2010-07-28
  • 打赏
  • 举报
回复
昏昏...计算机高手来吧
of123 2010-07-28
  • 打赏
  • 举报
回复

旋转的情况比较困难。你不可能让图形穷举所有的角度进行旋转,再来比对。

对于两个图形,首先要找到对应边。

不知楼主的矩形是否确定存在。如果是利用两个矩形的边的夹角,可以找出可能的旋转角度。实际上,只能有两个可能的角度。按这些角度旋转其中一个,然后如上逐点比较。
of123 2010-07-28
  • 打赏
  • 举报
回复

先拣容易的说说。

镜像检验应该比较简单:

将要比较的两个多边形中的一个,先作镜像反转。用反转后的与另一个比较。
比较前,将两个样本图形归一化平移。例如所有的点都减去左下角坐标。

如果逐点比较相同,则原图形是互为镜像的。
苍狼传说 2010-07-28
  • 打赏
  • 举报
回复
关注,顶上去
熊孩子开学喽 2010-07-24
  • 打赏
  • 举报
回复
本来都打了不少字了,后来觉得也不是很好,帮顶了
yinxx11 2010-07-23
  • 打赏
  • 举报
回复
学习学习 精神支持
wangyu065 2010-07-23
  • 打赏
  • 举报
回复
晕数学,晕算法。
dianyancao 2010-07-23
  • 打赏
  • 举报
回复
哦,楼主说的 平面几何元素图 是不规则的多边形,内部加一个矩形。不妨先将内部的矩形 先看成缩小成其几何中心,即一个点。既然都是对称或者旋转,那么必定产生的象和原象都能重合即全等,那么问题就转化为:

如何判断在同一平面中,两个全等的多边形元素构成的象,是关于某直线轴对称,还是关于某点中心对称?即判断由两个相同的平面元素,所构成的图形,是轴对称图形,还是中心对称图形。

由于这两个元素全等,并且都是多边形,那么由它们所构成的平面图像,是不需要通过比较点,来获得是轴对称图形,还是中心对称。只需要按顺时针或者逆时针的顺序,依次取得其中一个多边形的各个内角的角度,并按顺序依次保存下来,再和另一个多边形的各角按顺序依次比较,即可求解。

具体做法:
某多边形A1-A2-A3-...-An的各个顶点所对应的角为,角A1,A2,A3,...,角An。
另一个多边形B1-B2-B3-...-Bn的各个顶点所对应的角为,角B1,B2,B3,...,角Bn。

中心对称:
由于两多边形的顶角都为n个,因此按顺时针的顺序依次标记其中一多边形各角,会获得n种结果,另同。
因此当两图形比对时,最多需要比较n^2次,这里只要按顺序匹对,并依次比对角度时,一次中两图形的角度全部吻合,即两多边形是关于中心对称。
轴对称:
就需要将两个多边形顺时针顺序分别标记顶点,然后把标记的顶点按顺序匹对,并依次连接成线段,取每条线段的中点,得到n各点,只需判断这n各点共线,那么就是轴对称。

那么就可以开始比较两图形内部的矩形。首先需要将两多边形重合起来,是轴对称的先再次翻转一次,否则即可按上面的结果,把两多边形的各个相应的顶点平移至同一坐标点。此时外部的两多边形已经重合在一起。
这里首先判断内部的矩形的中心点是否能够重合,能,则进行下一步。直接判断两个位于多边形内部的矩形,在经过上述的平移后,是否能够重合在一起,方法略。
由此之下,只要内部的两矩形在外部的多边形重合在一起时,两矩形也重合。就可以得到上述的两个象构成的图形,是轴对称图形,还是中心对称图形。


附:要通过点对点进行比对也可以,但是关键是使用【上下文识别坐标系】,基本如下图所示:

sunrisehy2003 2010-07-23
  • 打赏
  • 举报
回复
好难啊
liquoryellow 2010-07-23
  • 打赏
  • 举报
回复
请楼主告诉我,我说的旋转有什么问题???两个多边型全等就肯定是旋转了,还有什么复杂的?
liquoryellow 2010-07-22
  • 打赏
  • 举报
回复
1 镜像.
单纯只有四边形的时候,是镜像的时候,应该是数学中的映射问题.橙色左下边斜率与绿色右下边斜率相同,橙色右下边斜率与绿色左下边斜率相同.两个4边形的四条边比例"对应"相同.且橙色右夹角与绿色左夹角相同,橙色左夹角与绿色右夹角相同.
2 旋转
旋转也是映射,单纯的只有四边形的时候,那么四条边必须都相同,且长度相同两边的夹角相同就可以了吧.
3 根据已经知道的矩形上面的点,分别想四边型2个"对角"顶点连线.得到2条线,还能获得这两条线与四边形的四条边的分别夹角.然后对应画到绿色四边形中,获取交点.交点就是所得的点.
如果是兰色的,那么就算出旋转的角度,然后很容易得到对应的点.
slowgrace 2010-07-22
  • 打赏
  • 举报
回复
算法问题应该给300分的,这个比程序问题费脑子。
slowgrace 2010-07-22
  • 打赏
  • 举报
回复
我没回答,因为老虎会回答的。
悟迟 2010-07-22
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 zhoujk 的回复:]

前面已经有人说过的一个方法:
找到外部几何形体的重心。然后以此为坐标原心,得到所有点的坐标。如果多边形有轴对称现象,则可能出现混淆,这时就要使用内部的这个小几何形来进行定向。
然后用我在16楼的方法来做。还有个问题,如果是镜像的话,可能镜像的轴不一定是与X或Y平行,所以11楼的方法不一定正确。发现这种情况:所有的对应三角形全等,但是旋转到同向后不能重合,就应该可以判断是镜像了。
[/Quote]是啊,镜像轴是任意线怎么办,这个到没想到
Tiger_Zhao 2010-07-22
  • 打赏
  • 举报
回复
全部通过平移、旋转和镜像来做
(1)先将橙色多边形的一个顶点移动到原点,将其中一条边转到+X轴上,作为标准图形。图中所示正好。
(2)无论绿色图形还是蓝色图形:
 (a)分别将4个顶点移到原点,再分别将每个顶点上的两条边转到+X轴上,一共8个图形,只要这8个图形之一与(1)中的标准图形相等,那么该种颜色的原始图形是通过橙色图形旋转得到的。
 (b)将(a)中的8个图形按X轴镜像,得到新的8个图形,只要这8个图形之一与(1)中的标准图形相等,那么该种颜色的原始图形是通过橙色图形镜像得到的。

任意多边形以此类推。
lyserver 2010-07-22
  • 打赏
  • 举报
回复
来看看LZ。
加载更多回复(34)

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧