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

主頁 > 知識庫 > 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)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    4438x成人网最大色成网站| 中文字幕的久久| 久久夜色精品一区| 亚洲黄色片在线观看| 免费一级欧美片在线观看| av在线综合网| 精品va天堂亚洲国产| 一区二区成人在线视频| 粗大黑人巨茎大战欧美成人| 欧美一区二区三区免费视频| 亚洲欧美激情在线| 成人免费观看视频| 久久久久青草大香线综合精品| 日日夜夜精品视频免费| 欧美亚一区二区| 综合分类小说区另类春色亚洲小说欧美 | 日韩欧美美女一区二区三区| 一区二区三区中文字幕| 成人美女视频在线看| 337p日本欧洲亚洲大胆精品 | 中文在线免费一区三区高中清不卡| 亚洲v中文字幕| 欧美三级视频在线观看| 一区二区三区日韩在线观看| av爱爱亚洲一区| 国产精品无圣光一区二区| 激情另类小说区图片区视频区| 国产成人精品亚洲午夜麻豆| 欧美成人艳星乳罩| 免费三级欧美电影| 日韩欧美国产三级| 狠狠久久亚洲欧美| 欧美大白屁股肥臀xxxxxx| 喷白浆一区二区| 日韩视频中午一区| 久草热8精品视频在线观看| 日韩亚洲欧美成人一区| 美日韩一区二区| 久久久久国产免费免费| 国产精品18久久久| 日韩伦理免费电影| 欧美午夜寂寞影院| 日本中文字幕一区二区视频 | 高清免费成人av| 中文字幕不卡一区| 在线视频国产一区| 日本不卡一区二区三区高清视频| 欧美日韩一区 二区 三区 久久精品| 国产精品美女久久久久久| 国产aⅴ精品一区二区三区色成熟| 久久久国产精品午夜一区ai换脸| 成人午夜伦理影院| 一个色在线综合| 日韩午夜精品视频| 国产成人鲁色资源国产91色综| 国产精品久久久久影院色老大 | 国产精品成人免费在线| 欧洲人成人精品| 卡一卡二国产精品| 国产精品丝袜在线| 欧美视频一区二区三区四区| 麻豆成人久久精品二区三区红| 国产日韩欧美高清| 欧洲中文字幕精品| 免费成人在线影院| 欧美国产乱子伦| 欧美性色欧美a在线播放| 麻豆freexxxx性91精品| 国产精品蜜臀在线观看| 91精品国产品国语在线不卡| 成人网在线免费视频| 亚洲综合丝袜美腿| 亚洲精品一区二区三区香蕉| 欧美午夜一区二区| 国产精品18久久久久久久网站| 亚洲一区二区三区四区中文字幕| 精品国产91亚洲一区二区三区婷婷| 99久久99久久精品免费看蜜桃| 丝袜美腿一区二区三区| 国产精品福利一区| 日韩精品一区二区三区在线| 91在线观看下载| 九色|91porny| 午夜精彩视频在线观看不卡| 日韩久久一区二区| 国产亚洲精品7777| 欧美一区二区三区啪啪| 日本韩国一区二区| 成人福利视频网站| 久久精品国产亚洲高清剧情介绍| 亚洲在线中文字幕| 亚洲日本护士毛茸茸| 欧美国产激情二区三区| 精品少妇一区二区三区视频免付费| 色拍拍在线精品视频8848| 成人网页在线观看| 国产成人免费xxxxxxxx| 韩国一区二区在线观看| 免费成人美女在线观看.| 亚洲6080在线| 亚洲成av人片在线观看| 亚洲最大成人综合| 亚洲欧美日韩国产成人精品影院| 国产精品私人影院| 国产精品午夜电影| 国产精品国产自产拍高清av | 一区二区三区中文字幕在线观看| 国产性天天综合网| 久久久精品影视| 亚洲精品一区二区三区四区高清 | 久久成人久久爱| 美腿丝袜亚洲三区| 蜜桃精品视频在线观看| 奇米888四色在线精品| 日本不卡高清视频| 美女一区二区在线观看| 日本欧美久久久久免费播放网| 日本在线不卡一区| 蜜桃传媒麻豆第一区在线观看| 蜜臀精品一区二区三区在线观看| 久久精品99国产精品| 国产美女娇喘av呻吟久久| 国产精品综合在线视频| 成人一级片在线观看| av一本久道久久综合久久鬼色| 99精品视频一区| 欧美日韩国产在线观看| 91精品麻豆日日躁夜夜躁| 538在线一区二区精品国产| 日韩视频免费观看高清完整版| 精品免费99久久| 中文字幕国产精品一区二区| 亚洲乱码中文字幕| 亚洲成年人影院| 精品在线一区二区| 成人免费观看男女羞羞视频| 欧美在线999| 欧美一区二区三区日韩| 中文字幕欧美激情一区| 亚洲亚洲人成综合网络| 美女一区二区在线观看| av一本久道久久综合久久鬼色| 欧美日韩一区在线| 久久久精品欧美丰满| 亚洲一区二区在线观看视频| 久久综合综合久久综合| 99re成人在线| 日韩一级欧美一级| 国产精品乱人伦一区二区| 五月婷婷欧美视频| 丁香激情综合五月| 欧美精品三级在线观看| 久久久久久免费毛片精品| 一区二区三区日韩欧美| 国产一区在线观看麻豆| 欧美综合在线视频| 亚洲精品在线网站| 亚洲午夜私人影院| 国产91对白在线观看九色| 欧美久久一区二区| 国产亚洲视频系列| 三级久久三级久久久| 成人av资源网站| 欧美xxxxx牲另类人与| 日本一区二区视频在线| 欧美a级理论片| 91久久国产最好的精华液| 精品国产一二三| 亚洲国产一区在线观看| 成人高清免费观看| 欧美变态tickling挠脚心| 亚洲精品国产精华液| 精品一区二区精品| 欧美在线一区二区| 亚洲欧洲日韩av| 国产精品白丝av| 日韩一级免费一区| 性做久久久久久免费观看欧美| 91免费看`日韩一区二区| 国产女主播在线一区二区| 秋霞影院一区二区| 91精品国产综合久久久蜜臀粉嫩| 亚洲一区二区在线视频| fc2成人免费人成在线观看播放 | 天天操天天综合网| 91亚洲国产成人精品一区二区三 | 亚洲国产一二三| 91蝌蚪porny| 亚洲国产精品高清| 国产精品系列在线观看| 精品国产一区二区亚洲人成毛片 | 午夜精品久久久久| 91激情五月电影| 尤物视频一区二区| 日本道免费精品一区二区三区| 亚洲免费观看高清完整版在线| 97久久精品人人澡人人爽| 国产精品美女久久久久久久网站| www.色精品| 日韩一区欧美小说|