解決的問題:實現判定乙個點是否在封閉的多邊形內。
原理:這個演算法是由w. randolph franklin提出的,根據jordan curve theorem,多邊形將平面分為內外兩個區域,假設待測點在多邊形內部,從待測點引出一條射線必然會與多邊形有至少乙個交點。該射線與多邊形第一次相交時將「衝出」多邊形,第二次相交將「進入」多邊形,依此類推,若射線與多邊形有奇數個交點,則該點在多邊形內部,反之則在外部。
pnpoly演算法正是從待測點引出一條水平向右的射線,並計算與多邊形的交點個數。
python實現
// an highlighted block
import operator
import matplotlib.pyplot as plt
import pandas as pd
#nvert:多邊形的頂點個數,vertx:多邊形頂點的x值的列表,verty:多邊形頂點的y值的列表,(testx,testy):檢測點座標
def pnpoly
(nvert,vertx,verty,testx,testy)
: c=
0for i in
range(0
,nvert)
:if i==0:
j=nvert-
1else
: j=i-
1if operator.
ne(operator.
gt(verty[i]
,testy)
,operator.
gt(verty[j]
,testy)
) and operator.
lt(testx,
(vertx[j]
-vertx[i])*
(testy-verty[i])/
(verty[j]
-verty[i]
)+ vertx[i]):
c=1-c #點在多變形內
return c
Perona Malik 演算法Python實現
最近正好在學習關於影象處理的東西,需要用到pm perona malik 演算法,所以就把自己的一些理解和 貼上來,希望能跟大家一起 pm演算法的具體原理可以網上查閱相關資料或者相關書籍,這裡只是簡要介紹大概的實現思路 一般而言,對乙個影象進行提取特徵之前,需要進行降噪濾波處理。最常用的應該是高斯濾...
Miller Rabin演算法 Python實現
用python實現了miller rabin的素性檢驗演算法 import random deflargeprime generate bit 1024 print generating large prime.i 1while true num random.randrange 2 bit 1 2...
python 關聯規則演算法 apriori實現
coding utf 8 from future import print function import pandas as pd 自定義連線函式,用於實現l 到c k的連線 def connect string x,ms x list map lambda i sorted i.split ms...