校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > python Graham求凸包問題并畫圖操作

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

熱門標(biāo)簽:朝陽手機(jī)外呼系統(tǒng) 北瀚ai電銷機(jī)器人官網(wǎng)手機(jī)版 小蘇云呼電話機(jī)器人 市場上的電銷機(jī)器人 佛山400電話辦理 儋州電話機(jī)器人 所得系統(tǒng)電梯怎樣主板設(shè)置外呼 地圖標(biāo)注面積 北京電銷外呼系統(tǒng)加盟

python Graham求凸包并畫圖

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

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

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

import matplotlib.pyplot as plt
import math
import numpy as np  
class Node:
    def __init__(self):
        self.x = 0
        self.y = 0
        self.angel = 0
        #和最左下的點(diǎn)連成的直線,與x軸正半軸的夾角大小 
 
#按照角度從小到大排序
def cmp(x):
    return x.angel  
def bottom_point(points):
    min_index = 0
    n = len(points)
    #先判斷y坐標(biāo),找出y坐標(biāo)最小的點(diǎn),x坐標(biāo)最小的點(diǎn)
    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個點(diǎn)的坐標(biāo),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
    #計算每個點(diǎn)和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循環(huán)更新答案
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

圖形學(xué)可以說經(jīng)常遇到這東西了,這里給出一個庫函數(shù)的實現(xiàn)

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

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • python 生成任意形狀的凸包圖代碼
  • 基于python 凸包問題的解決
  • Python求凸包及多邊形面積教程

標(biāo)簽:龍巖 云南 寧夏 酒泉 商丘 金融催收 江蘇 定西

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python Graham求凸包問題并畫圖操作》,本文關(guān)鍵詞  python,Graham,求凸包,問題,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python Graham求凸包問題并畫圖操作》相關(guān)的同類信息!
  • 本頁收集關(guān)于python Graham求凸包問題并畫圖操作的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    激情综合网av| 国产精品亚洲专一区二区三区| 成人18视频在线播放| 亚洲天天做日日做天天谢日日欢| 99视频在线精品| 国产精品一区二区果冻传媒| 国产精品美女一区二区三区| 亚洲欧美一区二区三区孕妇| 欧美人妖巨大在线| 国产高清无密码一区二区三区| 一区二区三区中文字幕电影| av激情综合网| 三级久久三级久久久| 精品成人a区在线观看| 99久久久免费精品国产一区二区| 一区二区三区国产精品| 欧美岛国在线观看| 91福利在线看| 91麻豆免费视频| 国产揄拍国内精品对白| 一区二区三区高清| 国产清纯美女被跳蛋高潮一区二区久久w | 91香蕉视频mp4| 美女视频一区在线观看| 国产精品国产三级国产aⅴ入口| 欧美大片国产精品| 欧美一区二区三区免费视频| 一本久道久久综合中文字幕| 国产mv日韩mv欧美| 激情综合一区二区三区| 裸体健美xxxx欧美裸体表演| 中文字幕 久热精品 视频在线 | 国产精品一区二区免费不卡| 偷拍一区二区三区四区| 亚洲一区二区三区精品在线| 国产欧美1区2区3区| 中文字幕第一页久久| 国产视频一区二区三区在线观看| 日韩片之四级片| 日韩亚洲欧美综合| 精品精品欲导航| 国产欧美精品一区| 亚洲精品高清视频在线观看| 亚洲成人免费看| 久久国产精品99久久人人澡| 国产一区二区三区| 91小视频免费看| 欧美日韩高清一区二区不卡| 欧美一区二区免费视频| 久久久久久久久岛国免费| 国产蜜臀97一区二区三区| 亚洲图片激情小说| 午夜精品福利一区二区三区蜜桃| 另类小说欧美激情| 91捆绑美女网站| 精品电影一区二区| 国产精品不卡一区二区三区| 日韩精品成人一区二区三区| 国产成人精品三级麻豆| 欧美日韩免费高清一区色橹橹| 欧美日本韩国一区| 国产亚洲成年网址在线观看| 免费在线成人网| 色哟哟国产精品| 久久久久久久久久看片| 免费成人在线播放| 欧美老年两性高潮| 亚洲免费伊人电影| 色偷偷成人一区二区三区91| 国产日韩欧美精品一区| 国精品**一区二区三区在线蜜桃| 欧美美女一区二区在线观看| 国产精品福利在线播放| kk眼镜猥琐国模调教系列一区二区| 亚洲精品一区二区三区在线观看 | 日韩美女啊v在线免费观看| 国模冰冰炮一区二区| 2020国产成人综合网| 国产一区在线观看视频| 精品三级av在线| 国产一区二区在线电影| 国产区在线观看成人精品| 99久久精品费精品国产一区二区| 久久免费视频一区| 成人激情小说网站| 亚洲乱码日产精品bd| 9191成人精品久久| 国精产品一区一区三区mba桃花| 精品伦理精品一区| 国产激情精品久久久第一区二区| 欧美激情一区二区三区在线| 色播五月激情综合网| 日本一不卡视频| 2021国产精品久久精品| 99久久99精品久久久久久 | 国产精品国产自产拍高清av| 欧美日韩美少妇| 97国产一区二区| 青草国产精品久久久久久| 国产精品天美传媒| 日韩欧美国产综合| 欧美视频在线不卡| thepron国产精品| 国产原创一区二区| 国内成人免费视频| 裸体一区二区三区| 香蕉久久一区二区不卡无毒影院| 26uuu色噜噜精品一区二区| 欧美日韩国产小视频在线观看| 国产成人鲁色资源国产91色综| 麻豆91在线看| 狠狠色丁香久久婷婷综| 七七婷婷婷婷精品国产| 日韩精品久久理论片| 秋霞午夜鲁丝一区二区老狼| 一级精品视频在线观看宜春院 | 精品亚洲免费视频| 精品写真视频在线观看| 国产一区二区三区观看| 国产乱一区二区| 精品一区二区在线免费观看| 捆绑调教一区二区三区| 麻豆成人久久精品二区三区红 | 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 在线电影国产精品| 欧美一级视频精品观看| 久久综合狠狠综合| 亚洲精品少妇30p| 亚洲一二三四久久| 国产经典欧美精品| 久久国产剧场电影| 国产黑丝在线一区二区三区| 99久久精品免费| 欧美亚洲动漫精品| 精品国产sm最大网站| 亚洲曰韩产成在线| 精品无人码麻豆乱码1区2区 | 亚洲一区二区高清| 国产a精品视频| 色综合色狠狠综合色| 精品国内片67194| 婷婷亚洲久悠悠色悠在线播放| 风间由美中文字幕在线看视频国产欧美 | 欧美精品一卡二卡| 亚洲国产日日夜夜| 国产成人免费在线视频| 日韩一区二区电影网| 亚洲综合在线五月| 在线欧美日韩国产| 成人欧美一区二区三区白人| 韩国欧美一区二区| 日韩一区二区免费在线电影| 视频一区二区三区入口| 欧美日韩国产免费| 五月综合激情日本mⅴ| 欧美挠脚心视频网站| 午夜精品久久久久久久99水蜜桃| av一区二区三区四区| 亚洲日本电影在线| 欧洲一区二区三区在线| 亚洲成a人片在线不卡一二三区| 日本久久电影网| 亚洲欧美日韩一区| 3d动漫精品啪啪1区2区免费| 日韩av一区二区三区四区| 日韩一级视频免费观看在线| 欧美aaa在线| 日本一区二区三区电影| 白白色 亚洲乱淫| 亚洲自拍欧美精品| 欧美精品日日鲁夜夜添| 国产.精品.日韩.另类.中文.在线.播放| 国产精品污www在线观看| 欧美影视一区在线| 久久国产福利国产秒拍| 成人免费在线视频观看| 精品理论电影在线观看 | 亚洲综合色噜噜狠狠| 日韩欧美www| 91精品国产综合久久精品app| 久久精品国产精品亚洲精品| 亚洲男人的天堂在线aⅴ视频| 日韩欧美资源站| 欧美日本在线观看| 99久久精品一区二区| 精品中文av资源站在线观看| 日韩成人精品视频| 亚洲综合区在线| 亚洲欧洲成人自拍| 26uuu另类欧美| 亚洲精品一区二区三区蜜桃下载 | 亚洲电影第三页| 亚洲人精品一区| 国产精品久久夜| 久久久不卡影院| 国产无人区一区二区三区| 国产精品视频你懂的| 欧美国产乱子伦| 欧美国产一区二区在线观看| 久久久久国产精品厨房|