BBS.ChinaUnix.net
首页 | 新闻 | Linux | AIX | 博客 | 论坛 | 存储 | 网络 | 人才 | 知识库 | 资料 | 读书 | 手册 | 精华 | 下载 | 空间     
  会员: 密码: 免费注册 | 忘记密码 | 会员登录 | 搜索 | 帮助 


地球坐标中如何判断一个点是否落在某一不规则区域中?
首页 » 论坛 » C/C++ »  
[打印] [订阅] [收藏] [推荐给朋友] [本帖文本页]
liuzemin   帅哥
侠客




UID:284251
注册:2005-6-24
最后登录: 2008-07-01
帖子:16
精华:0

可用积分:27 (白手起家)
信誉积分:100
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
21楼 发表于 2008-4-29 14:54 
在平面坐标系下做过类似的
判断一点是否在一个凸多边性中,
用叉乘,取多边形任意一点为原点的坐标系下,多边型下一点和要判断的点在该坐标系下的两个矢量叉乘,得出一个方向,
继续判断多边形下一点,如果所有的方向一致,则在多边形里面,否则在外面



您对本贴的看法:鲜花[0] 臭蛋[0]
Web安全应用现状有奖调查+Web安全应急处理沙龙+100积分 | 致电800-858-2903,了解DELL如何为你量身订制笔记本
liuzemin   帅哥
侠客




UID:284251
注册:2005-6-24
最后登录: 2008-07-01
帖子:16
精华:0

可用积分:27 (白手起家)
信誉积分:100
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
22楼 发表于 2008-4-29 15:00 


QUOTE:
原帖由 cugb_cat 于 2008-4-29 10:39 发表

对。

当不规则区域为环型时候,简单点如上半个地球,
该方法失效



您对本贴的看法:鲜花[0] 臭蛋[0]
Web安全应用现状有奖调查+Web安全应急处理沙龙+100积分 | 致电800-858-2903,了解DELL如何为你量身订制笔记本
liuzemin   帅哥
侠客




UID:284251
注册:2005-6-24
最后登录: 2008-07-01
帖子:16
精华:0

可用积分:27 (白手起家)
信誉积分:100
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
23楼 发表于 2008-4-29 15:01 


QUOTE:
原帖由 cugb_cat 于 2008-4-29 10:27 发表

射线那个算法不了解,我是说平面的问题,可以通过改变切割经线的位置,来达到在同一个平面的位置。

当不规则区域为环型时候,简单点如上半个地球,
该方法失效



您对本贴的看法:鲜花[0] 臭蛋[0]
Web安全应用现状有奖调查+Web安全应急处理沙龙+100积分 | 致电800-858-2903,了解DELL如何为你量身订制笔记本
titansword2000   帅哥
精灵



UID:208011
注册:2004-12-15
最后登录: 2008-07-13
帖子:249
精华:0

可用积分:208 (白手起家)
信誉积分:100
专家积分:0 (本版)

来自:山东
状态:...离线...

[个人空间] [短信] [博客]


顶部
24楼 发表于 2008-4-29 15:08 
那用射线法应该总没问题的吧



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

用FB真好,有BF更好;
大家好才是真的好,好的真好.
Web安全应用现状有奖调查+Web安全应急处理沙龙+100积分 | 致电800-858-2903,了解DELL如何为你量身订制笔记本
liuzemin   帅哥
侠客




UID:284251
注册:2005-6-24
最后登录: 2008-07-01
帖子:16
精华:0

可用积分:27 (白手起家)
信誉积分:100
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
25楼 发表于 2008-4-29 15:11 
射线法我不清楚,你考虑一下叉乘对你的问题是否有帮助



您对本贴的看法:鲜花[0] 臭蛋[0]
Web安全应用现状有奖调查+Web安全应急处理沙龙+100积分 | 致电800-858-2903,了解DELL如何为你量身订制笔记本
titansword2000   帅哥
精灵



UID:208011
注册:2004-12-15
最后登录: 2008-07-13
帖子:249
精华:0

可用积分:208 (白手起家)
信誉积分:100
专家积分:0 (本版)

来自:山东
状态:...离线...

[个人空间] [短信] [博客]


顶部
26楼 发表于 2008-4-29 15:41 
如果不知道多边形是凹还是凸呢?难道要分开做?



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

用FB真好,有BF更好;
大家好才是真的好,好的真好.
Web安全应用现状有奖调查+Web安全应急处理沙龙+100积分 | 致电800-858-2903,了解DELL如何为你量身订制笔记本
liuzemin   帅哥
侠客




UID:284251
注册:2005-6-24
最后登录: 2008-07-01
帖子:16
精华:0

可用积分:27 (白手起家)
信誉积分:100
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
27楼 发表于 2008-4-29 16:20 
凹多变形该方法也失效,
想办法把凹多边形分解为几个凸多边形



您对本贴的看法:鲜花[0] 臭蛋[0]
Web安全应用现状有奖调查+Web安全应急处理沙龙+100积分 | 致电800-858-2903,了解DELL如何为你量身订制笔记本
自由建客
侠客




UID:656033
注册:2007-12-21
最后登录: 2008-06-26
帖子:21
精华:0

可用积分:21 (白手起家)
信誉积分:0
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
28楼 发表于 2008-4-29 20:36 


QUOTE:
发现基本是利用Windows的API函数

Windows还提供这样的API?
楼主还是去找专门的算法资料看看吧。



您对本贴的看法:鲜花[0] 臭蛋[0]
Web安全应用现状有奖调查+Web安全应急处理沙龙+100积分 | 致电800-858-2903,了解DELL如何为你量身订制笔记本
cheveu
骑士




UID:637835
注册:2007-11-5
最后登录: 2008-07-19
帖子:71
精华:0

可用积分:81 (白手起家)
信誉积分:0
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
29楼 发表于 2008-4-30 01:34 
从球面几何考虑此问题:
1、确定多边形边界。
球面上任意两点间有两条“直线段/测距线”,即球大圆的优弧、劣弧或两个半圆,下同。
在过两点的大圆上指定第三点,以确定哪条“直线段”是你要的多边形的边界。
至此,多边形的边界确定。
2、确定多边形的内外。
自己找一个你认为在多边形内的点,记为O点。
O点是确定多边形内外的关键,球面上的多边形内外问题,必须人来定义。
至此,多边形内外确定。
3、判断。
要判断的点记为X点。
多边形各顶点记为A1、A2、A3……An,各边(已在步骤1中确定)记为L12、L23、L34……Ln1。
3.1、X是否在多边形某边界线上?若否,继续判断。
3.2、X在多边形内还是外?
连接O、X两点,得到两条“直线段”。随机选一条记为OX,但是一旦选定不得更改。[在球大圆上随机插入一点,且该点既非X点、亦非O点,这个不难吧。有了这个随机点,就可以定下OX了。]
判断OX与多边形各边L12、L23、L34……Ln1交点的个数之和是否为偶数。
偶数,X在内,奇数,X在外。
说明:
首先,数字0是偶数。
其次,OX若与L12交于端点A2,必亦与L23交于端点A2,这样的交点(同时也是多边形端点),计算交点个数之和时,应被计算两次。
------------------------------------------------
最后想对lz说,你的问题是球面几何问题,很多性质不同于欧氏几何。不能用欧氏几何的思路思考。
例如:
1、两点之间仍只有一条直线(球大圆),但有两条直线段。在球面上两点之间确定一条“直线段”必须依靠额外条件,比如第三点。此时,你要确定哪条是你多边形的边界。这个必须人为指定。
2、球面上的一个闭合环路将球面分为两部分,这两部分在拓扑上是等价的,互称内外。此时,你要确定哪半边是你多边形的内部。这个必须人为指定。

谢谢lz的好问题,今晚光阴我没有虚度。

补充说明一点:使用经纬坐标还是球面坐标并不重要。只要点与坐标一一对应即可。哪种坐标有利于计算我没有研究过。本贴提供一个思路。

[ 本帖最后由 cheveu 于 2008-4-30 01:37 编辑 ]



您对本贴的看法:鲜花[0] 臭蛋[0]
Web安全应用现状有奖调查+Web安全应急处理沙龙+100积分 | 致电800-858-2903,了解DELL如何为你量身订制笔记本
蓝色力量   帅哥
新手




UID:273984
注册:2005-5-29
最后登录: 2008-07-24
帖子:11
精华:0

可用积分:21 (白手起家)
信誉积分:100
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
30楼 发表于 2008-4-30 02:52 
回复 #1 titansword2000 的帖子

我在过去研究原子团结构的时候,曾经对3维多面题的表面原子进行过定义,所用的方法能够准确判别一个原子是在团簇内部,表面区域,还是外部。

通俗一点,就是可以自动搜索位于多面体表面和内部的点。

简单的,多面体表面质点可以定义如下:

作通过某一点A的任意平面,如果存在某一平面S,使得某一多面体区域B中所有的点都位于该平面S的同一侧,并且B中没有点位于S上,则该点A位于多面体区域B的 外部。
如果只能找到这样一个平面S,使得B中仅有部分点存在于S的同一侧,其余则全部位于S面上,则点A位于区域B的外表面上。
否则,我们说A位于多面体区域B的内部。

具体实现可以参考以下论文:

Impact of atomic shells on the structure of cluster
Chemical Physics Letters, Volume 412, Issues 1-3, 25 August 2005, Pages 195-199
网络地址:http://www.sciencedirect.com/science?_ob=ArticleURL&_udi=B6TFN-4GNTFW7-B&_user=590719&_rdoc=1&_fmt=&_orig=search&_sort=d&view=c&_acct=C000030198&_version=1&_urlVersion=0&_userid=590719&md5=ba0642c4c6dcb690352a9868905bd5e5

若不方便下载原文,可以给我发邮件,physhhliu@126.com

若使用文中提到的方法发表论文,麻烦引用一下本文,也顺便帮我做下广告。多谢了。

[ 本帖最后由 蓝色力量 于 2008-4-30 03:18 编辑 ]



您对本贴的看法:鲜花[0] 臭蛋[0]
Web安全应用现状有奖调查+Web安全应急处理沙龙+100积分 | 致电800-858-2903,了解DELL如何为你量身订制笔记本

首页 » 论坛 » C/C++ »


 


Copyright © 2001-2008 ChinaUnix.net All Rights Reserved     联系我们:

感谢所有关心和支持过ChinaUnix的朋友们    转载本站内容请注明原作者名及出处

京ICP证041476号


清除 Cookies - ChinaUnix - Archiver - WAP - TOP

Processed in 0.082005 second(s), 4 queries , Gzip enabled