- 浏览: 2159276 次
- 性别:
- 来自: 合肥
文章分类
- 全部博客 (401)
- Agile (16)
- Apache Commons (3)
- Architecture (8)
- DB.MongoDB (5)
- DB.Mysql (3)
- DB.Oracle (34)
- DirectoryService (1)
- DotNet (1)
- English (3)
- Groovy (0)
- Html (28)
- Java (67)
- Java.Aixs (7)
- Java.Cache (2)
- Java.jPBM (1)
- Java.Resin (6)
- Java.Spring (4)
- Java.Struts2 (5)
- Java.Tomcat (16)
- Javascript (45)
- Javascript.Google Map (2)
- Javascript.Jquery (8)
- Life (15)
- Maven&Ant (4)
- Network (5)
- OS.Linux (45)
- OS.Windows (10)
- OS.Windows.Office (1)
- PlayFramework (15)
- Python (28)
- Reading notes (11)
- Security (13)
- Server.Apache (3)
- Server.Nginx (7)
- Test (6)
- Tool (15)
- Work.Solution (15)
- Other (20)
- SSO&CAS&Identity (13)
最新评论
-
hutuxiansheng123:
防火墙、Iptables、netfilter/iptables、NAT 概述 -
dacoolbaby:
非常棒的正则表达式,非常适用。万分感谢。
用python分析nginx的access日志 -
loot00:
您好! 我也遇到了相同的错误信息。我是用f_link_lob ...
LOB variable no longer valid after subsequent fetch -
feihangchen:
@OnApplicationStop public clas ...
Play framework 1.2.3 Jobs定时任务、异步任务、引导任务、触发任务、关闭任务 -
洞渊龙王:
谢谢了
www.w3.org被qiang导致logback报错:Connect reset
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>img usemap属性</title>
</head>
<script>
function isPointInLine(point,linePoint1,linePoint2)
{
//是否一个点向x轴的射线穿透线段,有交点
var maxY=(linePoint1.y>linePoint2.y)?linePoint1.y:linePoint2.y;
var minY=(linePoint1.y<linePoint2.y)?linePoint1.y:linePoint2.y;
//alert("maxY" + maxY);
//alert("minY = " + minY);
var re=false;
if(point.y<maxY && point.y>=minY)
{
a1 = point.x;
a2 = (linePoint2.x-linePoint1.x)*(point.y-linePoint1.y)/(linePoint2.y-linePoint1.y);
//alert(a1);
//alert(a2);
//alert(a1 <= a2);
if(parseFloat(point.x) <= parseFloat(( linePoint1.x+(linePoint2.x-linePoint1.x)*(point.y-linePoint1.y)/(linePoint2.y-linePoint1.y) )) )
{
re=true;
}
}
//alert("point :" + point.x + ":" + point.y + ";")
//alert("linePoint1 :" + linePoint1.x + ":" + linePoint1.y + ";")
//alert("linePoint2 :" + linePoint2.x + ":" + linePoint2.y + ";")
//alert(re);
return(re);
}
function isPointInPolygon(point,poly)
{
//是否点在多边形里
var crossNum=0;
var re=true;
for(var i=0;i<poly.length-1;i++)
{
if(isPointInLine(point,poly[i],poly[i+1]))
{
crossNum++;
}
}
if((crossNum % 2)==0)
{
re=false;
}
return(re);
}
function clickme()
{
var pa = document.getElementById("point").value.split(",");
var p = {x:pa[0],y:pa[1]};
var poa = document.getElementById("poly").value.split(",");
var po = new Array();
for(var i=0;i<poa.length/2;i++){
po[i]={x:poa[2*i],y:poa[2*i+1]};
};
//for(var i=0;i<po.length;i++)
//{
// alert(po[i].x);
// alert(po[i].y);
//}
//alert(p.x);
//alert(p.y);
alert(isPointInPolygon(p,po));
}
</script>
<body>
原理:从要判断的点向x轴发射一条射线,如果射线与多边形的边有偶数次相交,那么点不在多边形内;奇数次相交,那么点在多边形内
<br>
<input type="text" id="point" value="0.5,0.49" />点的横竖坐标,用逗号分隔
<br>
<input type="text" id="poly" value="0,0,0.75,0.75,1,0,1,1,0,1" />按照逆时针方向 多边形点的横竖坐标坐标0
<input type="button" id="btn" value="点击我" onclick="clickme();">
</body>
</html>
发表评论
-
knockoutjs 变量引用方式、怪异问题排查
2012-08-24 15:01 1535问题:使用knockoutjs的过程中,有时候会发现一些奇怪的 ... -
Javascript Closures闭包、为什么要闭包(闭包作用)、变量作用域
2012-08-10 14:00 2119转自:http://www.jb51.net/article/ ... -
Javascript函数、变量的初始化顺序、Javascript上下文环境
2012-08-07 15:57 1851参考:Initialization of functions ... -
Javascript函数:函数声明、函数表达式、NFE被命名的函数表达式
2012-08-07 15:45 1183参考: functions-declaration ... -
Javascript alert object、JavaScript版本迷局
2012-07-30 15:18 24681,使用alert(object.toSource()) 注 ... -
knockoutjs -- if 绑定
2012-06-14 16:22 13027参考:http://knockoutjs.com/ ... -
jquery Fixture 插件
2012-06-07 10:16 1508jQuery.Fixture插件是一个包含在javascrip ... -
CoffeeScript
2012-04-20 15:05 1818CoffeeScript是一个被编译成javascript的小 ... -
javascriptmvc 3.2.2
2012-04-19 17:10 1358JavaScriptMVC是一个以MIT协议开源的Javasc ... -
knockoutjs -- all built-in buildings
2012-04-16 16:12 1002所有可用的binding值 文字和显示:visible, t ... -
knockoutjs -- applyBinding & Observables
2012-04-16 15:35 4494applyBindings ko.applyBindings( ... -
knockoutjs -- load save data(与服务器进行数据交互) & binding绑定
2012-04-10 15:51 6050和服务器交互数据: Knockout 是一纯javascrip ... -
使用ajax和history.pushState无刷新改变页面URL onpopstate(转)
2012-04-10 13:20 11557var htmlData1 = $.ajax( ... -
knockoutjs 单页引用 客户端重定向(location.hash history.pushState)
2012-04-10 10:33 4394大部分现代的,相应的 ... -
knockoutjs foreach array绑定 表格 下拉框绑定
2012-04-09 16:04 11458动态表格使用observable arrays and the ... -
knockoutjs 静动态数据、行为绑定,计算属性及Sync同步更新 Value值更新事件控制
2012-04-09 15:24 9507data-bind="text: firstName ... -
knockoutjs -- 使用Model-View-ViewModel (MVVM) 模式简化动态Javascript UI
2012-04-09 14:35 3809Knockout 是个JavaScript library,帮 ... -
jquery-validation-1.9.0
2012-04-07 15:52 4309jQuery验证插件: 简单高 ... -
textarea文本框限制输入文本数量(Firefox,Chrome,Safari)、Javascript取得字符ASCII码值、常见字符ASCII码值
2012-04-07 10:35 2268// focus用来对应Chrome浏览器往文本框拖入值 ... -
JavaScript高级程序设计读书笔记-事件
2011-11-09 16:53 1485JavaScript和HTML之间的交互是通过用户和浏览器操作 ...
相关推荐
#### 一、判断点在多边形内的算法 在计算机图形学及相关的领域中,判断一个点是否位于一个多边形内部是一个常见的问题。本篇文章将介绍一种利用计算几何中的弧线法(即内角和法的一种变形)来实现这一功能的方法,...
在图形处理和几何计算中,有时我们需要判断一个点是否位于多边形的内部或外部,这在计算机图形学中是一个常见的问题。这个“易语言判断点在多边形内外”的源码就是为了实现这个功能而编写的。 在计算机科学中,判断...
在JavaScript编程中,判断一个点是否位于一个多边形内部是一项常见的需求,尤其是在处理与图形界面相关的应用时。本文将详细介绍如何使用JavaScript来实现这一功能,并深入探讨背后的算法原理。 #### 一、问题背景 ...
8. **交互式应用**:如果是在Web环境下,可能需要将这个功能整合到前端JavaScript中,通过API与后端Java服务进行交互,实现用户在地图上点击时实时判断点是否在多边形内。 通过理解以上知识点,并参考`Demo`文件中...
总结,JavaScript中判断点是否在多边形内的方法主要依赖于射线交叉数算法,它通过检查点与多边形边的交点数量来确定点的位置。为了提高代码质量,我们还需要编写全面的测试用例来验证函数的正确性。
知识点:判断点是否在多边形内部的算法及其在C#、Java、JavaScript中的实现 在计算机图形学、地理信息系统(GIS)以及游戏开发等领域,判断一个点是否位于一个多边形内部是一个常见的需求。该需求涉及到空间数据...
- **空间查询**:结合泰森多边形,可以进行点与多边形的关系查询,判断点是否位于特定的多边形内。 - **优化性能**:对于大量点数据,可能需要采用分块处理或异步计算来优化性能。 - **交互式操作**:用户可以动态...
两个多边形相交,意味着它们在二维平面上有共同的点。在几何学中,可以通过比较各个边来判断两个多边形是否相交。OpenLayers 3提供了`ol.geom.Polygon`类,用于创建和操作多边形对象。 1. **创建多边形**:在...
多边形测试的目标是判断一个点P是否在多边形的边界内或边界上。这个问题有多种解决方法,如Winding Number法、Ray Casting法以及最近点查询法等。 Winding Number法基于点P到多边形所有边的相对顺序来计算环绕数,...
在JavaScript中,处理3D图形和空间几何问题是一项挑战,特别是当涉及到判断点是否位于一个3D凸多边形内部时。这个问题在游戏开发、地理信息系统(GIS)以及虚拟现实应用中尤为常见。本文将详细讲解如何实现这样一个...
对于"线/面/圆是否包含点"的问题,主要涉及到的是空间几何的包含关系判断,这在GIS领域中称为"点在区域内"或"点在多边形内"的问题。 对于`Polygon`(面)而言,判断一个点是否在多边形内部,常用的方法是射线法...
要判断一个点是否在某个多边形内,有多种算法可供选择。 1. **射线交叉法(Ray Casting Algorithm)**:这是最常用的方法之一。从点出发画一条水平射线,统计这条射线与多边形边界相交的次数。如果次数是奇数,那么...
在JavaScript代码中,这通常涉及到`BMap.Circle`类的使用,通过传递中心点坐标和半径来创建一个圆形。 对于“长方形”,我们可以使用矩形工具,通过两个对角点坐标来定义一个矩形区域。这涉及到`BMap.Polygon`类的...
在本实例中,我们将探讨如何利用 PHP 和 MongoDB 来判断一个坐标点是否位于指定的多边形区域内。 首先,我们需要定义一个多边形区域。多边形是由多个坐标点(经度,纬度)构成的闭合路径。例如,给出的多边形区域是...
在`mousedown`时记录起点坐标,在`mousemove`时更新矩形边界,然后在`mouseup`时遍历地图上的所有要素,判断它们是否完全在矩形内。这种方法适用于需要批量选择范围内的多个要素的情况。 3. **多边形选择(Polygon ...
百度地图提供的这个JavaScript实现是基于射线交叉法(Ray Casting Algorithm)来判断点是否在多边形内的。下面是详细的知识点解析: 1. **射线交叉法**: 射线交叉法是一种简单且效率较高的算法,它通过从测试点...
index.js-用于绘制多边形和调用intersects()函数的代码 solution.js-具有intersect()函数和许多其他实现算法的函数的脚本 test.js-带有测试的脚本 index.css -index.html的样式 test.css -test.html的样式 如何...
7. **Polygon.html文件**:这个文件很可能是项目的示例代码,它包含了一个简单的HTML页面,其中嵌入了JavaScript代码和VML元素,用户可以直接在浏览器中打开这个文件来体验手绘多边形的功能。 综上所述,"js+vml...