判断点或者坐标是否在不规则区域内

以下有三种方法:

1、如果是经度纬度数据的话,可以根据百度API来实现,具体请看:http://blog.csdn.net/c1481118216/article/details/52661934

2、如果是点数据的话,可以根据PNPoly算法来实现,具体请看: http://www.cnblogs.com/luxiaoxun/p/3722358.html、

3、这种想法是我自己想的,有待各位验证。如果是边数比较少量并且是凸边形的话,可以求出每个边的函数,利用多个函数的不等式组进行判断

下面求x∈[-2,2],y∈[2-,2]区域中,所取的点是否落在三角形区域内,利用了四个不等式组如:x>0,y<x,y>1/2x,x<1.5,将落在三角形内的点标记为红色,其他为蓝色

# -*- coding: utf-8 -*-
"""
Created on Thu Sep 22 09:25:34 2016

@author: Jemila

import matplotlib.pyplot as plt 
import random

n = int(raw_input("Please input your number:"))

x=[random.uniform(-2,2) for i in range(n)]
y=[random.uniform(-2,2) for i in range(n)]

x1=[]
y1=[]

for i in range(n):
    if y[i]<x[i] and x[i]>0 and 2*y[i]>x[i] and x[i]<1.5:
        x1.append(x[i])
        y1.append(y[i])

plt.plot(x,y,'bo')
plt.plot(x1,y1,'ro')
plt.show()



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值