实现多边形区域侦测功能,判断算法返回矩形区域是否在任意多边形区域内
2023-12-14 00:20:12
1.建立polygonregion.c文件,实现功能函数
#include <stdlib.h>
#include <string.h>
#define LOG_TAG “polygonregion”
#include “log.h”
#include “tl_osal.h”
#include “plat_sys.h”
#include “utils.h”
#include “polygonregion.h”
/**
- @brief 射线法
- @param p 需要判断的点
- @param poly 多边形点坐标
- @param num 多边形点个数
- @return int
*/
int IsInPolygonRegion(PRPoint p, PRPoint *poly, int num)
{
int flag = 0, i;
for (i = 0; i < num; i++) {
// 多边形的边的两个点 p1,p2
PRPoint p1 = poly[i];
PRPoint p2 = poly[(i + 1) % num];
// 点的 Y 坐标一个大于等于,一个小于
if ((p.y >= p1.y && p.y < p2.y) || (p.y >= p2.y && p.y < p1.y)) {
// 交点计算,两点式
float x = (p.y - p1.y) * (p2.x - p1.x) / (p2.y - p1.y) + p1.x;
// 交点 X 坐标肯定在前
文章来源:https://blog.csdn.net/lxy_tap/article/details/134855761
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!