判断点或者坐标是否在不规则区域内
以下有三种方法:
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()
转载自:https://mtr-1.oss-cn-beijing.aliyuncs.com/qyblog/2019/04/53096594.jpg