网上查了下,有办法是说连接目标点与各顶点,然后算夹角,加起来为360度,则在内部,否则在外部,但是这种办法对凹形不对。
1) 我自己想了个办法:
直接沿这个目标点画一条垂直线,跟各边形成的所有交点,都在目标点的同一侧,则在图形外,如果不在同一侧(凹形左旋转90度,不在同一侧)则继续画一根水平线,如果跟各边形成的所有交点,都在目标点的同一侧,则在图形外。
2) 还有个办法:
先设定图外一个点X,然后将测定点P和X之间连线PX,如果PX跟图的交点是偶数个(0,2,4,...)则测定点P在图外;如果交点是奇数个(1,3,5,...),则测定点P在图内。
也可以反过来做,就是先设定图内有一个点X,不过计算交点数量就要反过来,偶数说明测定点P在图内,奇数才是图外。
这样就把命题改变为:检查PX跟该多边形所有边线的总交点数量。线段和线段的交点,是可以用公式计算的。
代码:
http://stackoverflow.com/questions/8721406/how-to-determine-if-a-point-is-inside-a-2d-convex-polygon
/**
* 验证测试点是否在图形内
*/
private function validateRoom(roomNodes:ArrayCollection,nowPosition:Point):Boolean{
var points:Array = new Array();
for each(var node:Node in roomNodes){
points.push(node.location);
}
var i:int;
var j:int;
var result:Boolean = false;
for (i = 0, j = points.length - 1; i < points.length; j = i++) {
if ((points[i].y > nowPosition.y) != (points[j].y > nowPosition.y) &&
(nowPosition.x < (points[j].x - points[i].x) * (nowPosition.y - points[i].y) / (points[j].y-points[i].y) + points[i].x)) {
result = !result;
}
}
return result;
}
发表评论
-
dssddssdsdsd
2014-07-02 17:22 838登录不要刷新发布文章没有判断内容是否为空您正在使用低版本浏览 ... -
hello
2014-07-02 17:22 736登录不要刷新发布文章没有判断内容是否为空您正在使用低版本浏览 ... -
华为账号
2013-05-18 09:53 0华为账号:dKF76008 yulong_deng1 -
用js获取后台返回的List对象
2013-05-17 10:59 1743function getEquimentType(){ ... -
cc222
2013-03-29 18:16 0dfdf -
Calendar注意
2013-03-27 19:41 848public static void main(String ... -
spring与ibatis继承
2012-12-22 15:59 01.applicationContext.xml: & ... -
我参与的敏捷开发3
2012-12-22 15:45 0软件工程师(软件项目迭代开发): 概 ... -
我参与的敏捷开发2
2012-12-22 15:23 0系统工程师(SE): 概念阶段TR1: ... -
我参与的敏捷开发1
2012-12-22 12:18 0敏捷软件开发流程: 项目开始 -> 需求分 ... -
某设计项目功能
2012-12-21 16:24 0IDS1000(集群); 箱体选型 ... -
MySQL-Front.exe
2012-12-21 15:57 794mysql数据库MySQL-Front.exe -
mysql软件
2012-12-03 09:52 1111mysql软件:MySQL-Front -
界面设计工具UIDesigner或者GUI
2012-09-19 16:14 628UI Designer,http://uid.cdc.t ... -
技术随想
2012-08-31 09:51 764技术好比分为 内功和外功,外功只是体现在在应用方面,也就是技术 ... -
几年工作应该具有的
2012-08-31 09:31 822我们不需要熟练工,我们需要在某领域拥有超过常人的积累认知, ... -
比较好用的截图软件并且可标注
2012-08-30 09:50 741Greenshot -
补发新概念,织一片头发补在脱发处
2012-08-29 10:00 0如何治疗脱发已经成为一个世界性难题,继药物治疗、植发手 ... -
值得看下脱发的网站
2012-08-29 09:52 0本人有一味祖传秘方专治脱发生发的药,纯中药制做.效果迅速有效. ... -
poi数据有效性(下拉列表)
2012-08-28 12:14 3159版本poi3.8 public class Test ...
相关推荐
本篇将详细讲解如何利用Matlab来实现这个功能,特别是判断一个点是否在三角形内的算法。 首先,我们需要理解基本的几何概念。一个封闭图形是由多个顶点(坐标点)通过线段连接形成的,如三角形、四边形等。在二维...
综上所述,"画不规则图形并填充不规则图形"是一个涉及图形绘制、填充算法、边界处理等多个技术层面的复杂过程,而"FillGraphy"可能是一个专门用于此目的的工具或软件。通过熟练掌握这些知识,用户可以创建出具有丰富...
本文主要介绍了判断某一点是否在一个不规则的图形内部的算法。该算法使用射线法判断点是否在多边形内,并对其进行了详细的解释和实现。 首先,需要了解射线法的思想。射线法是指从点P向x正方向发射一个射线,穿过...
总的来说,ShapeTouch是一个强大的工具,对于需要在H5应用中实现不规则图形交互的开发者来说,它是一个不可或缺的资源。通过深入理解和熟练使用这个库,开发者可以创造出更具创新性和用户体验的H5应用。
该教案共21页,涵盖了不规则图形的定义、平移的概念、面积和周长的计算等知识点。 不规则图形的定义 不规则图形是指不规则的图形,它的边长和面积都不是规则的。这种图形在生活中非常常见,例如一个不规则的园地、...
- 在计算机图形学、地图制图、地理信息系统(GIS)等领域,经常需要判断一个点是否位于一个三角形内部。 - 这个功能对于诸如Delaunay三角剖分等算法特别有用,因为它可以辅助确定哪些点属于特定的三角形区域。 3....
在GIS(地理信息系统)和计算机图形学中,判断一个点是否位于地图闭合区域内的算法是十分关键的。这个算法通常被应用于各种场景,比如地图应用中的定位、碰撞检测、地理围栏等。这里我们将详细探讨这个算法的核心...
在 Siemens 的 WinCC7.5 人机界面(HMI)软件中,绘制不规则图形并为其填充背景颜色是一项常见的需求,特别是在创建自定义图形元素或交互式控件时。WinCC7.5 提供了多种工具来实现这一目标,但默认的折线工具并不支持...
例如,如果有一个包含一个空白区域的不规则图形,我们可以通过计算整个图形的面积然后减去空白部分的面积来求得阴影部分的面积。如例1所示,阴影部分的面积等于两正方形面积之和减去空白部分的面积,即(4×4+3×3)...
总之,"Android不规则图形点击提示选中不同区域的源码"是一个涉及自定义视图绘制、碰撞检测、事件处理和视觉反馈的综合案例,对于深入理解Android图形系统和交互设计具有很高的参考价值。通过学习和实践,开发者可以...
例如,题目中的第一个问题要求计算班级菜园的周长,这可能需要我们将不规则图形通过平移分解成几个线段,然后将各线段长度相加。 2. **地毯长度的确定**:第二个问题涉及到楼梯的地毯铺设,实际上是在求解不规则...
在计算机图形学中,判断一个点是否位于多边形内部是一项常见的任务,尤其在VB(Visual Basic)编程环境中。这个任务通常涉及到二维几何计算和算法的实现。在VB中,我们可以利用数学方法来解决这个问题,这通常是通过...
1. 将不规则图形放置在一个大的规则区域内,例如一个足够大的矩形内。 2. 在这个大区域内随机生成大量的点。 3. 统计这些点中有多少落在图形内部。 4. 根据图形区域内的点占整个区域的比例,估算图形的面积。 公式...
在计算机图形学中,判断一个坐标点是否位于不规则四边形内部是一个常见的问题,尤其在游戏开发、图像处理和碰撞检测等领域。本教程将详细解释如何使用易语言实现这一功能,主要涉及的知识点包括计算两点间的距离以及...
特别是对于不规则图形,如何准确地判断鼠标光标是否位于该图形内部,即所谓的“热点”检测,是一个具有挑战性的技术点。本文将详细介绍如何利用VB结合Windows API来实现这一功能。 #### 二、关键技术点 1. **使用...
然而,在这个问题中,“inscribed”被用来形容矩形与不规则图形的关系,意味着矩形的每一边都接触(但不穿过)不规则图形的边界。 "图形最大"是指我们要寻找的矩形应具有最大的面积。这通常涉及到计算和优化问题,...
在小学五年级数学的人教版课程中,"不规则图形的面积"是一个重要的知识点。这个主题主要教导学生如何处理和估算那些形状不规则的图形的面积。在实际生活中,我们经常会遇到各种形状复杂的图形,例如一片树叶或者一个...
在计算机图形学和算法设计中,判断线段相交与点是否在多边形内是常见的问题,尤其在碰撞检测、几何渲染等领域有着广泛应用。本文将深入探讨这两个知识点,并结合提供的源代码`is_iner.cpp`和文档`是否相交.doc`进行...