日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python Graham求凸包問題并畫圖操作

瀏覽:21日期:2022-06-17 15:17:53
python Graham求凸包并畫圖

python寫Graham沒有c++那么好寫,但是python畫圖簡單。只需要用matplotlib里的pyplot,c++畫圖太難了。

Graham算法寫起來比較簡單,只需要想辦法對最小點和其他的點所連成的直線,與x軸正半軸的夾角進行排序,然后其他的就直接套用Graham算法模板就好了,因為c++可以重載排序函數sort,不用計算角度(用其他的數學方法),但是python不行(也許是我不知道而已,菜)。

python必須要在結構體里面加上角度這個變量,然后才能按照角度排序。排好序后就變得容易了,用stack棧存放答案,算完答案后,用scatter(散點圖)畫出點,用plt(折線圖)畫邊界就好了。

import matplotlib.pyplot as pltimport mathimport numpy as np class Node: def __init__(self):self.x = 0self.y = 0self.angel = 0#和最左下的點連成的直線,與x軸正半軸的夾角大小 #按照角度從小到大排序def cmp(x): return x.angel def bottom_point(points): min_index = 0 n = len(points) #先判斷y坐標,找出y坐標最小的點,x坐標最小的點 for i in range(1, n):if points[i].y < points[min_index].y or (points[i].y == points[min_index].y and points[i].x < points[min_index].x): min_index = i return min_index #計算角度def calc_angel(vec): norm = math.sqrt(vec[0] * vec[0] + vec[1] * vec[1]) if norm == 0:return 0 angel = math.acos(vec[0]/norm) if vec[1] >= 0:return angel else:return math.pi * 2 - angel def multi(v1, v2): return v1[0] * v2[1] - v1[1] * v2[0] point = []n = 30#生成30個點的坐標,n可以修改for i in range(n): temp = Node() temp.x = np.random.randint(1, 100) temp.y = np.random.randint(1, 100) point.append(temp)index = bottom_point(point)for i in range(n): if i == index:continue #計算每個點和point[index]所連成的直線與x軸正半軸的夾角 vector = [point[i].x - point[index].x, point[i].y - point[index].y] #vector是向量 point[i].angel = calc_angel(vector)#排序point.sort(key=cmp)#答案存入棧中stack = []stack.append(point[0])stack.append(point[1])#for循環更新答案for i in range(2, n): L = len(stack) top = stack[L - 1] next_top = stack[L - 2] vec1 = [point[i].x - next_top.x, point[i].y - next_top.y] vec2 = [top.x - next_top.x, top.y - next_top.y] #一定要大于等于零,因為可能在一條直線上 while multi(vec1, vec2) >= 0:stack.pop()L = len(stack)top = stack[L - 1]next_top = stack[L - 2]vec1 = [point[i].x - next_top.x, point[i].y - next_top.y]vec2 = [top.x - next_top.x, top.y - next_top.y] stack.append(point[i])#畫出圖像for p in point: plt.scatter(p.x, p.y, marker=’o’, c=’g’)L = len(stack)for i in range(L-1): plt.plot([stack[i].x, stack[i+1].x], [stack[i].y, stack[i+1].y], c=’r’)plt.plot([stack[0].x, stack[L-1].x], [stack[0].y, stack[L-1].y], c=’r’)plt.show()Python 找到凸包 Convex hulls

圖形學可以說經常遇到這東西了,這里給出一個庫函數的實現

from scipy.spatial import ConvexHullpoints = np.random.rand(10, 2) # 30 random points in 2-Dhull = ConvexHull(points)import matplotlib.pyplot as pltplt.plot(points[:,0], points[:,1], ’o’)for simplex in hull.simplices: plt.plot(points[simplex,0], points[simplex,1], ’k-’)plt.show()

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久av电影| 婷婷精品视频| 免费看黄色91| 99香蕉国产精品偷在线观看 | 亚洲四虎影院| 日本а中文在线天堂| 国产夫妻在线| 国产成人精品亚洲日本在线观看| 伊人久久视频| 99久久激情| 不卡中文字幕| 日韩欧美一区免费| 久久亚洲国产| 香蕉久久国产| 亚洲精品无吗| 国产精品任我爽爆在线播放| 麻豆一区二区三| 日韩成人高清| 精品91久久久久| 亚洲精品字幕| 国产精品毛片久久久| 激情综合五月| 久久激情网站| 亚洲人成亚洲精品| 国产欧美一区二区三区国产幕精品| 国产精品午夜一区二区三区| 欧美xxxx性| 亚洲v在线看| 蜜桃视频免费观看一区| 91欧美极品| 韩国女主播一区二区三区| 性欧美videohd高精| 在线一区免费观看| 久久国产三级| 欧美成人a交片免费看| 99riav1国产精品视频| 欧美日韩中出| 亚洲精品国产嫩草在线观看| 日韩精品一卡二卡三卡四卡无卡| 啪啪亚洲精品| 亚洲成人不卡| 久久不射网站| 久久一区国产| 最新亚洲激情| 久久gogo国模啪啪裸体| 99国产精品一区二区| 日韩欧美美女在线观看| 日本久久黄色| 蜜桃久久久久久久| 精品视频一区二区三区四区五区 | 日韩激情啪啪| 91视频精品| 免费在线观看精品| 里番精品3d一二三区| 久久视频精品| 国产日产高清欧美一区二区三区 | 丁香六月综合| 亚洲天堂av资源在线观看| 久久精品免视看国产成人| 日本不卡视频在线| 日韩久久精品| 欧美啪啪一区| 亚洲精品99| 精品一区二区三区亚洲| 日韩制服丝袜av| 岛国av在线网站| 日韩不卡在线观看日韩不卡视频| 久久精品二区三区| 国产精品一区二区三区美女 | 综合激情五月婷婷| 国产一区二区三区黄网站| 性一交一乱一区二区洋洋av| 精品中文在线| 亚洲人成亚洲精品| 亚洲国内精品| 国模大尺度视频一区二区| 日韩欧美久久| 亚洲一区国产一区| 日韩中文在线电影| 国产精品久久久久久av公交车| 合欧美一区二区三区| 久久精品国产999大香线蕉| 蜜桃视频免费观看一区| 国产一区二区中文| 日韩欧美精品| 麻豆成人综合网| 日韩精品一区二区三区中文| 在线亚洲欧美| 亚洲国产综合在线看不卡| 97精品97| 久久尤物视频| 国产欧美自拍一区| 亚洲精品伦理| 中文亚洲免费| 亚洲性图久久| 成人av三级| 精品国产99| 青青草国产成人99久久| 免费在线观看日韩欧美| 好吊一区二区三区| 久久久精品午夜少妇| 麻豆国产91在线播放| 亚洲精品日韩久久| 久久亚洲风情| 欧美综合国产| 影院欧美亚洲| 国产精品91一区二区三区| 日韩中文在线播放| 欧美成人基地 | 国产毛片一区| 在线亚洲观看| 欧美精选一区二区三区| 97se综合| 国产 日韩 欧美一区| 中文在线а√天堂| 麻豆网站免费在线观看| 91一区二区| 成人在线网站| 亲子伦视频一区二区三区| 久久99精品久久久野外观看| 国产精品免费不| 国产日韩欧美高清免费| 日本综合视频| 蜜桃视频免费观看一区| 中文字幕日韩高清在线| 婷婷亚洲成人| 日本欧美一区二区| 国产亚洲精aa在线看| 国产精品手机在线播放| 国产福利亚洲| 国产精品成人a在线观看| 福利在线免费视频| 精品一区视频| 欧美aa在线视频| 国产精品第一| 久久伊人亚洲| av免费不卡国产观看| 国产精品原创| 久久五月天小说| 视频在线观看一区| 日本精品久久| 欧美激情综合| 香蕉成人av| 亚洲综合另类| 日韩激情av在线| 国产精品黄色片| 四虎4545www国产精品 | 风间由美中文字幕在线看视频国产欧美| 国产精品不卡| 国产99精品一区| 中文字幕成人| 国产欧美三级| 国产成人精品亚洲线观看| 国产99在线| 亚洲高清影视| 日本成人在线网站| 成人一区不卡| 国产亚洲永久域名| 日韩不卡手机在线v区| 免费在线成人| 精品一区在线| 日本国产亚洲| 日韩欧美综合| 亚洲香蕉视频| 麻豆精品少妇| 九九综合九九| 欧美亚洲二区| 日韩欧美综合| 亚洲字幕久久| 国产一区二区三区四区二区| 欧洲av不卡| 日韩专区一卡二卡| 里番精品3d一二三区| 欧美成人午夜| 在线国产精品一区| 国产中文欧美日韩在线 | 亚洲日产av中文字幕| 精品国产a一区二区三区v免费| 欧美成人亚洲| yellow在线观看网址| 日韩在线短视频| 日韩av中文字幕一区二区三区| 伊人久久视频| 亚洲2区在线| 国产拍在线视频| 亚洲精品观看| 成人羞羞视频播放网站| 久久国产精品久久久久久电车| 国产精品亚洲综合在线观看| 精品三级久久| 日韩一区二区三区精品| 久久精品国产99国产精品| 视频在线观看国产精品| 国产精品yjizz视频网| 亚洲不卡视频| 亚洲精品永久免费视频| 日韩高清成人在线| 婷婷精品进入| 国产精品流白浆在线观看| av不卡在线看|