明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2010|回复: 9

问一个问题@_@!

[复制链接]
发表于 2004-11-30 12:45:00 | 显示全部楼层 |阅读模式
如何判断点在多边形内,还是在多边形外.
发表于 2004-11-30 15:30:00 | 显示全部楼层
这还不容易:经过者点画一条铅垂线,如果有偶数个点,则说明在内部,反之在外嘛。呵呵
发表于 2004-11-30 15:52:00 | 显示全部楼层
 楼主| 发表于 2004-12-1 12:57:00 | 显示全部楼层
谢谢.我也这样想过,可交点这么求啊
发表于 2004-12-1 15:32:00 | 显示全部楼层
你哪个点为X=a,多边形的各顶点坐标都知道吧,知道两点不就可以建立直线方程了,再就是求交点了
 楼主| 发表于 2004-12-29 22:27:00 | 显示全部楼层
有更好的方法?铅垂线,"射线"?难咯
发表于 2004-12-29 22:53:00 | 显示全部楼层
画条线应该很容易的事。
求交点也应该很容易的事。
这些在论坛上已经不知发过多少次了。
发表于 2005-1-3 20:27:00 | 显示全部楼层
点在外部同样可能会有偶数个交点,必须对多个角度的射线或者构造线进行判断。
发表于 2005-1-4 12:01:00 | 显示全部楼层
我有一个方法,好不好大家评评看吧!呵呵!只对凸多边形有效)


将多边形各点排列好,存为两个点数组,排列规则都是X坐标最小的点排在第一位,X坐标最大的点排在最后一位,两数组分别按多边形点的顺时针和逆时针排列,就可得到多边形上半区和下半区的点数组,可组成上下半区的直线组,多边形内的点必然在所有上半区直线之下和所有下半区直线之上!这样就可以判断了!


这个方法只对凸多边形有效!呵呵!
发表于 2005-1-4 13:35:00 | 显示全部楼层
我的上面那个方法是垃圾!!!


其实有最简单的办法!例如:判断点a是否在n边形内,可以先将n边形的各顶点排好顺序,顺时针或逆时针都可以,然后将a点和n边形各个顶点连结起来,这样就形成n个以点a为顶点的三角形了,如果各三角形顶角之和为360度,则点a在n边形内,否则点a在n边形外!


不知道这个方法是不是最简单的!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-27 20:37 , Processed in 0.186604 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表