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

主頁 > 知識庫 > 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)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    亚洲免费视频中文字幕| 久久99国产精品久久| 美脚の诱脚舐め脚责91| 99久久精品国产观看| 欧美成人a视频| 亚洲美女在线一区| 国产激情91久久精品导航| 欧美日韩一区成人| 国产精品久久三| 国产福利一区二区三区在线视频| 欧美色综合久久| 亚洲手机成人高清视频| 国产精品影音先锋| 精品国产成人在线影院| 日日摸夜夜添夜夜添亚洲女人| 色狠狠综合天天综合综合| 中文字幕av不卡| 国产盗摄精品一区二区三区在线| 欧美一区二区三区四区高清| 亚洲尤物视频在线| 色噜噜狠狠色综合欧洲selulu| 中文字幕av一区二区三区免费看| 久久99国产精品免费| 欧美一区二区三区影视| 无码av免费一区二区三区试看| 日本精品视频一区二区| 亚洲精品视频一区二区| 色综合天天在线| 三级精品在线观看| 欧美午夜一区二区| 香港成人在线视频| 欧洲色大大久久| 亚洲电影激情视频网站| 欧美性色综合网| 爽好多水快深点欧美视频| 欧美日本不卡视频| 麻豆91在线看| 久久精品人人做| 成人黄页在线观看| 国产精品久久久久精k8 | 精品国产乱码久久久久久夜甘婷婷| 亚洲成人7777| 欧美一区二区三区小说| 乱中年女人伦av一区二区| 欧美电影免费观看高清完整版| 久久成人久久爱| 国产日韩欧美一区二区三区乱码| 成人污污视频在线观看| 一区免费观看视频| 在线观看亚洲成人| 日韩中文字幕av电影| 精品99久久久久久| 成人福利视频网站| 一区二区三区中文字幕| 日韩欧美国产三级| 成人免费视频一区| 亚洲成人av一区二区| 久久综合国产精品| 91丨porny丨国产| 日韩中文字幕区一区有砖一区 | 欧美日韩在线播| 久久99国内精品| 综合久久久久久久| 在线播放日韩导航| 福利一区二区在线观看| 亚洲人成人一区二区在线观看| 91精品国产高清一区二区三区| 国产一区二区三区香蕉| 亚洲精品美国一| 欧美va天堂va视频va在线| caoporm超碰国产精品| 五月激情六月综合| 国产欧美日本一区视频| 欧美精品九九99久久| gogo大胆日本视频一区| 日产欧产美韩系列久久99| 中文字幕第一区综合| 777精品伊人久久久久大香线蕉| 福利一区二区在线观看| 日本三级亚洲精品| 亚洲人成小说网站色在线| 久久综合资源网| 欧美久久久久久蜜桃| av亚洲精华国产精华精| 麻豆精品在线视频| 一区二区三区中文字幕| 国产亚洲人成网站| 日韩欧美一区二区视频| 色婷婷av久久久久久久| 国产成人一区在线| 青娱乐精品在线视频| 亚洲第一激情av| 亚洲欧洲一区二区在线播放| 久久综合九色综合久久久精品综合| 91黄色免费看| 91香蕉视频黄| 不卡一区在线观看| 免费观看在线综合| 天天色图综合网| 亚洲图片欧美一区| 亚洲欧美另类小说| 国产精品妹子av| 久久久久国产精品免费免费搜索| 日韩免费一区二区三区在线播放| 欧美军同video69gay| 91精彩视频在线| 91国偷自产一区二区三区成为亚洲经典| 豆国产96在线|亚洲| 国产高清久久久久| 国产精品一区二区在线看| 另类小说综合欧美亚洲| 另类小说视频一区二区| 免费观看在线综合| 精品系列免费在线观看| 久久超碰97中文字幕| 精品无人码麻豆乱码1区2区| 日本欧美一区二区在线观看| 免费观看久久久4p| 久久国产尿小便嘘嘘| 久久不见久久见免费视频1| 麻豆精品视频在线观看| 久久国产精品99精品国产| 精品一区二区三区免费播放| 精品制服美女久久| 国产在线播放一区| 岛国av在线一区| av中文字幕在线不卡| 91小视频免费看| 欧美日韩高清一区二区三区| 91精品国模一区二区三区| 精品理论电影在线观看| 久久精品人人做| 亚洲欧美日韩国产一区二区三区 | 日韩高清在线不卡| 琪琪一区二区三区| 国产麻豆精品视频| 99久免费精品视频在线观看| 91美女在线看| 制服丝袜国产精品| 久久久综合九色合综国产精品| 欧美国产日本视频| 亚洲最大成人网4388xx| 午夜久久电影网| 国产v综合v亚洲欧| 在线精品视频免费观看| 91精品国产一区二区三区| 久久青草欧美一区二区三区| 亚洲欧美激情一区二区| 日韩黄色一级片| 丁香激情综合五月| 欧美精品在线一区二区三区| 国产欧美精品区一区二区三区 | 欧美在线制服丝袜| 欧美成人aa大片| 亚洲蜜桃精久久久久久久| 老司机一区二区| 色婷婷久久久亚洲一区二区三区| 日韩一区二区精品葵司在线| 中文幕一区二区三区久久蜜桃| 亚洲成人av中文| 成人av网站免费| 欧美一区二区三区免费| 中文字幕中文在线不卡住| 日韩1区2区3区| 色婷婷国产精品久久包臀| 精品国产亚洲在线| 日韩1区2区3区| 91麻豆国产在线观看| 精品少妇一区二区三区视频免付费 | 狠狠色综合播放一区二区| 色噜噜久久综合| 国产嫩草影院久久久久| 奇米影视在线99精品| 在线欧美小视频| 国产精品视频免费| 国模无码大尺度一区二区三区| 欧美日韩国产综合一区二区三区| 中文字幕视频一区| 国产麻豆精品一区二区| 日韩欧美在线123| 天天做天天摸天天爽国产一区| 92精品国产成人观看免费| 国产欧美一区二区精品忘忧草 | 精品理论电影在线| 午夜国产不卡在线观看视频| 一本到三区不卡视频| 中文字幕中文字幕一区二区| 国产91精品一区二区麻豆亚洲| 精品久久久久久久久久久院品网| 日韩不卡一二三区| 欧美日韩国产系列| 亚洲国产另类精品专区| 91蝌蚪porny| 亚洲日本丝袜连裤袜办公室| 成人av中文字幕| 亚洲国产精品传媒在线观看| 国产盗摄一区二区| 国产精品欧美一区二区三区| 国产sm精品调教视频网站| 久久久久久97三级|