xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

資源簡(jiǎn)介

貝塞爾曲線(xiàn)擬合多邊形,本來(lái)以為是很標(biāo)準(zhǔn)的算法,必然有Python的現(xiàn)成庫(kù)存在,但搜了幾天下來(lái),竟然沒(méi)有一個(gè)。 csdn上有一個(gè)版本,是基于某篇文章修改的python版本,但算法有錯(cuò)。 該文章的地址在此:https://blog.csdn.net/sky_pjf/article/details/52816750 我下載了此版本,并做了修改,現(xiàn)在上傳的是正確的版本。 控制點(diǎn)的選取和實(shí)現(xiàn)思路,都是從該文章來(lái)的。 效果還比較好,希望對(duì)大家有幫助。

資源截圖

代碼片段和文件信息

import?numpy?as?np
import?pylab?as?pl
import?math
from?functools?import?reduce

scale?=?0.5??#控制點(diǎn)收縮系數(shù)
midpoints?=?[]?#存放中點(diǎn)坐標(biāo)
semipoints?=?[]
extrapoints?=?[]?#存放控制點(diǎn)
controlPoint?=?[]?#存放產(chǎn)生貝塞爾曲線(xiàn)的4個(gè)控制點(diǎn)
point?=?[]?#存放貝塞爾曲線(xiàn)上的點(diǎn)
nn?=?3?#三次貝塞爾曲線(xiàn)


hand?=?np.array([[1.64516129?1.16145833]
?????????????????[1.64516129?1.59375]
?????????????????[1.35080645?1.921875]
?????????????????[1.375?2.18229167]
?????????????????[1.68548387?1.9375]
?????????????????[1.60887097?2.55208333]
?????????????????[1.68548387?2.69791667]
?????????????????[1.76209677?2.56770833]
?????????????????[1.83064516?1.97395833]
?????????????????[1.89516129?2.75]
?????????????????[1.9516129?2.84895833]
?????????????????[2.01209677?2.76041667]
?????????????????[1.99193548?1.99479167]
?????????????????[2.11290323?2.63020833]
?????????????????[2.2016129?2.734375]
?????????????????[2.25403226?2.60416667]
?????????????????[2.14919355?1.953125]
?????????????????[2.30645161?2.36979167]
?????????????????[2.39112903?2.36979167]
?????????????????[2.41532258?2.1875]
?????????????????[2.1733871?1.703125]
?????????????????[2.07782258?1.16666667]])

#f?=?open(“xy.txt“)
def?getOriginPoint():
????global?f
????line=f.readline()
????while?line:
????????list?=?line.split(“?“)
????????list1?=?[]
????????for?i?in?range(len(list)):
????????????list1.append(float(list[i]))
????????originPoint.append(list1)
????????line=f.readline()
????return?originPoint

def?getOriginPoint2():
????for?a?in?hand:
????????la=?list(a)
????????#?originPoint.append(la)
????#?originPoint=?np.rot90(hand1)
????originPoint=?hand
????#return?originPoint

def?getControlPoint():
????originPoint?=?hand
????originCount?=?len(originPoint)
????print(originCount)
##????originPoint.sort(key?=?lambda?x:x[0])
##????controlPoint.append(originPoint[0])
##????keyPoint=[]
##????originPoint.sort(key?=?lambda?x:x[1]reverse=TRUE)
##????keyPoint.append(originPoint[0])
????
????#---------生成中點(diǎn)---------------
????for?i?in?range(0originCount):
????????nexti?=?(i?+?1)?%?originCount
????????templist?=?[]
????????templist.append((originPoint[i][0]?+?originPoint[nexti][0])/2.0)
????????templist.append((originPoint[i][1]?+?originPoint[nexti][1])/2.0)
????????midpoints.append(templist)

????print(len(midpoints))
????#?print(midpoints)
????#---------平移中點(diǎn)---------------
????for?i?in?range(0originCount):
????????#?print(i)
????????nexti?=?(i?+?1)?%?originCount
????????backi?=?(i+?originCount?-?1)?%?originCount
????????ln1=?math.sqrt((originPoint[i][0]?-?originPoint[nexti][0])**2?+?(originPoint[i][1]?-?originPoint[nexti][1])**2)
????????ln2=?math.sqrt((originPoint[backi][0]?-?originPoint[i][0])**2?+?(originPoint[backi][1]?-?originPoint[i][1])**2)
????????t1=?(ln1+?ln2)/?ln1
????????#?print(t1)
????????midinmid?=?[]?#存放中點(diǎn)的中點(diǎn)
????????x1=?midpoints[i][0]?-?(midpoints[i][0]?-?midpoints[nexti][0])/t1
????????y1=?midpoints[i][1]?-?(midpoi

評(píng)論

共有 條評(píng)論