一、平面判断点在面内

判断点在平面内可以以点向右做射线,判断射线与面相交的点数。如果点数为奇数,点在面内,为偶数则不在。如果平面有曲线,应该设置包围盒判断。


二、代码

代码如下(示例):

const PtInPolygon = {min(left,right){if (left < right) {return left;}if (right < left) {return right;}if (right === left){return 0;}},max(left,right){if (left < right) {return right;}if (right < left) {return left;}if (right === left){return 0;}},main(p=[0,0], ptPolygon=[[0,0],[1,0],[1,1],[0,1]]){let nCount = ptPolygon.length;//交点个数let nCross = 0;for(let i=0;i<nCount;i++){let p1 = ptPolygon[i]let p2 = ptPolygon[(i + 1) % nCount]if (p1[1] === p2[1]){continue;}if (p[1] < this.min(p1[1], p2[1])){continue;}if (p[1] >= this.max(p1[1], p2[1])){continue;}// 求交点的x坐标  let x = (p[1] - p1[1]) * (p2[0] - p1[0]) / (p2[1] - p1[1]) + p1[0];// 只统计p1p2与p向右射线的交点  if (x > p[0]){nCross++;}}// 交点为偶数,点在多边形之外return (nCross % 2 == 1);}
}export default PtInPolygon;

总结

此方法需要遍历所有平面对象,可以添加先进行大致判断,筛选可能的目标,在进行具体判断。

js 平面判断点在面内相关推荐

  1. js通过判断h5页面是否内嵌在app内

    // 通过ua标识判断var userAgent = navigator.userAgent.toLowerCase();//获取UA信息 if(userAgent.indexOf("ezh ...

  2. js快速判断IE浏览器(兼容IE10与IE11)

    原文:js快速判断IE浏览器(兼容IE10与IE11) 在很多时候,我们一般采用navigator.userAgent和正则表达来判断IE浏览器版本,下面介绍用IE浏览器中不同特性来判断IE浏览器 1 ...

  3. js中判断数据类型的方法

    JS中判断数据类型的方法: 使用typeof操作符. 对一个值使用 typeof 操作符可能返回下列某个字符串,返回的类型都是字符串形式. (1) undefined:如果这个值未定义 (2) boo ...

  4. 用百度地图实现添加电子围栏并判断是否在范围内

    用百度地图实现添加电子围栏并判断是否在范围内 做一个社区矫正系统时,误以为是给每个人设置一个活动范围,做了一个Demo, 以用户位置为中心,设置电子围栏半径并判断是否在范围内 预览: HTML代码如下 ...

  5. JS中判断对象是对象还是数组

    JS中判断对象是对象还是数组的方法 JS中判断对象是不是数组的方法 JavaScript中检测对象的方法  1.typeof操作符  这种方法对于一些常用的类型来说那算是毫无压力,比如Function ...

  6. 多边形碰撞检测(判断点在多边形内)

    点与规则的矩形或者等边.等腰三角形等的碰撞检测很简单,本文主要是介绍"点与多边不规则图形的碰撞检测". 如图,这个多边形已经相当复杂,包含凸和凹,该如何解决呢? 结论:使用交点数判 ...

  7. 3.js中判断数组中是否存在某个对象/值,判断数组里的对象是否存在某个值 的五种方法 及应用场景|判断数组里有没有某对象,有不添加,没有则添加到数组

    3.js中判断数组中是否存在某个对象/值,判断数组里的对象是否存在某个值 的五种方法 及应用场景 一.当数组中的数据是简单类型时: 应用js中的indexof方法:存在则返回当前项索引,不存在则返回 ...

  8. Js中判断变量存不存在的问题

    前面写过jquery对象存在与否的判断.现在谈下Js中判断变量存不存在的问题. 如果这样if(!a),当变量a在js中没有申明时,就会报错,那么接下去的代码将不会被执行.注意,这种判断只要变量申明过, ...

  9. php js统计链接点击次数,JS实现在线统计一个页面内鼠标点击次数的方法

    本文实例讲述了JS实现在线统计一个页面内鼠标点击次数的方法.分享给大家供大家参考.具体实现方法如下: js记录鼠标的点击次数 function addCookie(name,cookievalue,t ...

最新文章

  1. [AS3 3D Demo] Stage3D学习过程中开发的3个Demo
  2. Python学习(四)数据结构 —— set frozenset
  3. iOS app性能优化的那些事
  4. 离散免疫算法求解旅行商问题(源码实现)
  5. 前端学习之day02-CSS基础
  6. SQL char字段类型排序
  7. Word Count作业
  8. scala部分应用函数_Scala中的部分函数
  9. Encapsulate Downcast(封装向下转型)
  10. 19_01访问权限修饰符
  11. 听说大家想补补算法和数据结构,给大家推荐一个GitHub 15k星的图文版开源项目...
  12. 搜集的思源黑体相关的资料
  13. 刚体运动学公式_刚体的运动学与动力学问题 (二)
  14. 抖音超火的数字炸弹 c++ 实现
  15. 某土豪公司很糟糕的面试体验
  16. freebsd emacs_golang快速入门[6.2]-集成开发环境-emacs详解
  17. lwIP TCP/IP 协议栈笔记之十五: TCP协议
  18. CleanCode-函数
  19. 【研一小白论文精读】《Big Self-Supervised Models are Strong Semi-Supervised Learners》
  20. 为什么有的人明明能力没问题,却总是抓不住升职加薪的机会?

热门文章

  1. Codeforces Round #666(Div. 2)E. Monster Invaders(DP)
  2. 2023计算机毕业设计SSM最新选题之java“逢遇”个人博客平台qaoxv
  3. F.cross_entropy和F.binary_cross_entropy_with_logits
  4. asp.net857全科门诊的就诊管理系统#毕业设计
  5. Python 关于引用注意
  6. PSAM卡与CPU(用户卡)的操作过程
  7. 三种常数项级数收敛准则。
  8. Java基础06-面向对象(1)【类与对象】
  9. [渝粤教育] 南京工业大学 有机化学实验 参考 资料
  10. 吴恩达ML WEEK7 机器学习