博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
软件设计之多边形区域内找点
阅读量:6871 次
发布时间:2019-06-26

本文共 682 字,大约阅读时间需要 2 分钟。

publicbool FindPoint(double X, double Y)

 

        {

 

            int nCount = myPts.Count;

 

            int nCross = 0;

 

            for (int i = 0; i < nCount; i++)

 

            {

 

                Point p1 = myPts[i];

 

                Point p2 = myPts[(i + 1) %nCount];

 

 

                // 求解 y=p.y 与 p1p2 的交点

 

                if (p1.Y == p2.Y)

 

                    continue;

 

                // 交点在p1p2延长线上

 

                if (Y < Math.Min(p1.Y,p2.Y))

 

                    continue;

 

                // 交点在p1p2延长线上

 

                if (Y >= Math.Max(p1.Y,p2.Y))

 

                    continue;

 

                // 求交点的 X 坐标--------------------------------------------------------------

 

                double x = (double)(Y - p1.Y) *(double)(p2.X - p1.X) / (double)(p2.Y - p1.Y) + p1.X;

 

                if (x > X)

 

                    nCross++; // 只统计单边交点

 

            }

 

            // 单边交点为偶数,点在多边形之外 ---

 

            return (nCross % 2 == 1);

 

        }

 

本文转自h2内存数据库博客园博客,原文链接:http://www.cnblogs.com/h2-database/archive/2012/07/07/2583419.html,如需转载请自行联系原作者

你可能感兴趣的文章
EBS已安装模块
查看>>
Android性能优化:布局优化 详细解析(含<include>、<ViewStub>、<merge>讲解 )
查看>>
UWP 手绘视频创作工具技术分享系列 - 手绘视频导出
查看>>
Python import容易犯的一个错误
查看>>
Dubbo,Zookeeper入门
查看>>
SecureCRT自动断开连接的问题
查看>>
leetcode 101. Symmetric Tree
查看>>
Bash - 趣味Shell
查看>>
鹅厂优文|打通小程序音视频和webRTC
查看>>
『Github』本地项目更新到服务器
查看>>
黄聪:iOS $299刀企业证书申请的过程以及细节补充
查看>>
Java并发编程的艺术(一)——并发编程需要注意的问题
查看>>
H5下拉刷新和上拉加载实现原理浅析
查看>>
HBase实战(4):使用JAVA操作分布式集群HBASE
查看>>
An Introduction to OAuth 2
查看>>
Linux pwn入门教程(1)——栈溢出基础
查看>>
程序员、架构师、技术总监、CTO
查看>>
AnalyticDB - 分析型数据库
查看>>
【SVN】SVN的trunk、branches、tag的使用以及分支的概念
查看>>
SQL SERVER中关于OR会导致索引扫描或全表扫描的浅析 (转载)
查看>>