在封闭的多边形中,需要判断一个点在不在图形中

先在点处画一条竖直的线穿过图形

这时候记下A上下两边焦点的个数分别为1,为单数

但是B上下两边焦点的个数分别为0和2,为双数

那么找一个有凹面的多边形呢

发现也一样

那么就用这个方法来实现,点是否在封闭图形中的判定(cocos2d实现方式)

bool PointInRegion(cocos2d::CCPoint pt,vector<cocos2d>::plist)
{int Cross=0;//依次判定每一条边的情况for(int i=0;i<plist.size(),i++){cocos2d:CCPoint p1;cocos2d:CCPoint p2;p1=plist[i];p2=plist[(i+1)%plist.size()];//看点的x坐标是不是在两点的x坐标之中if(pt.x=p2.x)contine;if(pt.x<min(p1.x,p2.x))contine;if(pt.x>min(p1.x,p2.x))contine;//一条垂直线穿过图形,看交点的y坐标 double y = (double)(pt.x - p1.x) * (double)(p2.y - p1.y) / (double)(p2.x - p1.x) + p1.y; //统计在一边的交点的数量if(y>pt.y)nCross++;                            }//当一边的数量为偶数时候点在图形外if(nCross%2==0)return false;//当一边的数量为奇数时候点在图形内elsereturn true;}

原理图如下:

计算机图形学:传统函数方法判定点在不规则封闭区域内的判定方法相关推荐

  1. 计算机图形学-走样与反走样

    本专栏内容整理了GAMES101的计算机图形学课程的主要内容,作为我学习计算机图形学的一份复习备份或叫做笔记.内容中如有错误,或有其他建议,欢迎大家指出. 附上GAMES101计算机图形学课程:GAM ...

  2. 深圳大学计算机图形学实验4.1,深圳大学计算机图形学大作业实验报告.doc

    深圳大学计算机图形学大作业实验报告 深 圳 大 学 实 验 报 告 实验课程名称: 计算机图形学 实验项目名称: 计算机期末综合大作业 学院: 计算机与软件 专业: 计算机科学与技术 报告人: 班级: ...

  3. vtk教程第七章 高级计算机图形学

    第三章介绍了计算机图形学的基本概念.那一章的主要主题是如何使用表面原语(如点.线和多边形)表示和渲染几何.在本章中,我们主要关注体积图形.与表面图形相比,体图形在呈现非均匀材料方面具有更大的表达范围, ...

  4. 【计算机图形学课程】一.MFC基本绘图函数使用方法

    这是最近我<计算机图形学>课程实践编程课介绍的相关知识,主要是想通过MFC C++绘图,让学生体会下图形学相关的编程及简单的图形绘制,同时非常佩服学生的想象力,他们做得真的不错.希望这篇基 ...

  5. 计算机图形 简单测试法,数字测图原理及方法计算机图形学.ppt

    数字测图原理及方法计算机图形学 数字测图原理及方法 第九章 计算机地图绘图基础 9.1 概述 9.1 概述 9.1 概述 9.1 概述 9.1 概述 9.1 概述 9.1 概述 9.1 概述 9.1 ...

  6. 计算机图形学GAMES-Lecture10-几何1(基本表示方法)

    目录 纹理的应用 环境光照 凹凸贴图/法线贴图 位移贴图 环境光遮蔽 几何图形的介绍 几何的一些例子 隐式几何 显式几何 计算机图形学里更多隐式表达方法 代数表示法(Algebraic Surface ...

  7. 计算机图形学bazzer茶壶制作_书籍推荐:艺术化绘制的图形学原理与方法

    这本书介绍了如何用计算机创造出各种艺术化,风格化的效果.是一本很好的全面的对各个好玩的艺术化方法的概览,读者可以任选其中几个确认过眼神的,再去网上搜索具体的算法实现.本文章将介绍书里一些好玩的东西. ...

  8. 计算机图案填充的两种方法,计算机图形学课件 第9讲 区域填充和字符处理.ppt...

    计算机图形学课件 第9讲 区域填充和字符处理 信息科学与工程学院 1999年7月 5.4.1 多边形的扫描转换 多边形的两种表示方法: 顶点表示:用多边形的顶点序列来刻划多边形.直观.几何意义强.占内 ...

  9. 计算机图形学【GAMES-101】14、动画(物理模拟、质点弹簧系统、粒子系统、运动学、动作捕捉、欧拉方法)

    快速跳转: 1.矩阵变换原理Transform(旋转.位移.缩放.正交投影.透视投影) 2.光栅化(反走样.傅里叶变换.卷积) 3.着色计算(深度缓存.着色模型.着色频率) 4.纹理映射(重心坐标插值 ...

最新文章

  1. 场景几何约束在视觉定位中的探索
  2. Linux系统自动更新时间
  3. 小程序时间转换成时间戳
  4. 事务,视图及索引!!!
  5. uni-app 实现小程序rsa加密(非对称加密原理)
  6. 大二下学期学习进度(四)
  7. Java二、八、十、十六进制介绍
  8. openstack部署(四)--网络配置(Networking)
  9. Windows注册表相关示例(重装Chrome、思迅条码软件、清除远程痕迹等)
  10. 电脑可以开机但是黑屏_铅锤哥:十五种电脑开机黑屏的原因与解决思路
  11. VirtualBox安装虚拟机后分辨率调不对怎么办
  12. BIM模型文件下载——某体育馆项目Revit模型
  13. 企业微信开发整理汇总
  14. 交付管理——怎样写用户手册
  15. 亮眼财报业绩背后,难掩富途控股估值陷阱
  16. 三,Linux SDIO驱动框架之扫卡流程
  17. SpringBoot运行主程序报错:No subdirectories found for mandatory directory location ‘file:./config/*/‘.
  18. windows下cppcheck的使用
  19. 智慧建造管理平台施工现场视频监控系统
  20. mlag 堆叠_华为CE交换机M-LAG配置

热门文章

  1. java md5 十进制_Java实现字符串转换十六进制MD5值
  2. 开篇:RCU是什么?
  3. 开源SNS社区系统推荐
  4. 有关远程连接后aero效果消失的问题
  5. 教育一对一直播软件开发的优势是什么?
  6. APP,实现多国语言动态切换
  7. PYTHON 2.7爬虫获取百度音乐文件(按歌手名或歌曲名均可)
  8. 51单片机中断与定时器计数器,基于普中科技HC6800-ESV2.0
  9. IT世界里爱恨交加的OpenStack
  10. java面试项目车辆管理_基于jsp的车辆管理系统-JavaEE实现车辆管理系统 - java项目源码...