如何用python画一个圆(python主要是做什么的)

本文为大家分享了python实现画圆功能的实例代码,有需要的朋友请参考下文!importnumpyasnpimportmatplotlib.pyplotaspltfrommatplotlib.patchesimportPolygonimportmatplotlib.patchesasmpatchesfig=plt.figure(figsize=(16,8))ax=…

大家好,又见面了,我是你们的朋友全栈君。

本文为大家分享了python实现画圆功能的实例代码,有需要的朋友请参考下文!

a75cd78641.jpg?201802513422

import numpy as np

import matplotlib.pyplot as plt

from matplotlib.patches import Polygon

import matplotlib.patches as mpatches

fig = plt.figure(figsize = (16,8))

ax = fig.gca()

ax.set_xlim(-5,18)

ax.set_ylim(-5,8)

alpha = np.linspace(-np.pi,np.pi,30)

t = np.linspace(-np.pi,np.pi,100)

def ppp(nc , na , c , sx , sy):

beta = alpha[na]

gam = alpha[na+1]

x = [] ; y = [] ;

r = 0.5*nc

x.append(r*np.cos(beta)) ; y.append(r*np.sin(beta)) ;

tt = np.linspace(beta,gam,10)

for i in range(len(tt)):

x.append(r*np.cos(tt[i]))

y.append(r*np.sin(tt[i]))

r-=0.5

x.append(r*np.cos(gam)) ; y.append(r*np.sin(gam))

tt = np.linspace(gam,beta,10)

for i in range(len(tt)):

x.append(r*np.cos(tt[i])) ; y.append(r*np.sin(tt[i]))

x = np.array(x) ; y = np.array(y)

verts = list(zip(x+sx,y+sy))

poly = Polygon(verts , facecolor=c , edgecolor=c)

ax.add_patch(poly)

#ppp(2,0,’r’,0,0)

def get_coordiate(x , y):

beta = (alpha[y]+alpha[y+1])/2

pr = 0.5*(x+x-1)/2

sx = pr*np.cos(beta) ; sy = pr*np.sin(beta)

return sx,sy

def pp_arrow(x,y):

print x , y

sx , sy = get_coordiate(x, y)

for i in range(-1,2):

for j in range(-1,2):

if i == 0 and j == 0:

continue

ex , ey = get_coordiate(x+i, y+j)

ax.arrow(sx,sy,ex-sx,ey-sy,head_width=0.05,head_length=0.1,fc=’r’,ec=’r’)

def pxy(cx,cy):

for i in range(10):

plt.plot(0.5*i*np.cos(t)+cx,0.5*i*np.sin(t)+cy)

for i in range(len(alpha)):

plt.plot((0.5*np.cos(alpha)+cx,4.5*np.cos(alpha)+cx),(0.5*np.sin(alpha)+cy,4.5*np.sin(alpha)+cy))

cx = 13 ; cy =0

pxy(0,0)

pxy(13,0)

mr = np.zeros((10,30))

mb = np.zeros((10,30))

for i in range(3,9):

for j in range(1,27):

ttt = np.random.random()

if ttt >= 0.98 and ttt <= 1:

ppp(i,j,’r’,0,0)

mr[i][j] = 1

continue

if ttt < 0.8:

continue

else:

ppp(i,j,’b’,0,0)

mb[i][j] = 1

for i in range(10):

for j in range(30):

if mr[i][j] == 0:

continue

pp_arrow(i, j)

ma = 0 ;posx = 1 ; posy = 1

for k in range(-1,2):

for s in range(-1,2):

mb[i+k][j+s]=0

ttt = np.random.random()

if ttt > ma:

ma = ttt

posx = k ; posy = s

ppp(i+posx , j+posy , ‘r’ , 13 , 0)

ppp(i,j,’g’,13,0)

for i in range(10):

for j in range(30):

if mb[i][j] == 0:

continue

ppp(i , j , ‘b’ , 13 , 0)

arrow = mpatches.Arrow(5, 0

,3,0,width = 1,color = ‘r’)

ax.add_patch(arrow)

ax.text(6.2,0.5,’after one\nunit time’,ha=’center’,va=’center’,color=’y’)

xx = [4,4,4]

yy = [7.5,6.5,5.5]

c = [‘b’ , ‘r’ , ‘g’]

s = [‘debris’,’satellite’ , ‘the location of satellite one unit time ago’]

for i in range(3):

print xx[i] , yy[i]

rect = mpatches.Rectangle((xx[i],yy[i]),0.5,0.3,ec = c[i],fc=c[i] )

ax.text(xx[i]+0.7,yy[i],s[i])

ax.add_patch(rect)

plt.axis(‘off’)

plt.show()

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/129713.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ie 谷歌插件Chrome Frame[通俗易懂]

    ie 谷歌插件Chrome Frame[通俗易懂]弄了很久的东西,记录一下。记得要放到服务上才有效果

    2022年7月16日
    16
  • win11频繁更新,关闭win11恶意软件删除工具补丁更新

    win11频繁更新,关闭win11恶意软件删除工具补丁更新win11补丁更新主要包含4部分:第一部分功能更新,涉及Windows功能bug、新增的功能等;第二部分质量更新,涉及安全风险的更新;第三部分驱动更新,涉及厂商等提交给微软的驱动,进行更新;第四部分其它更新,目前主要发现的是,恶意软件删除工具更新。恶意软件删除工具,如果有第三方安全软件的话,这个补丁意义不大,并且恶意的标准是微软自家定义的,就看你是否接受微软自带的杀毒软件,如果用可以更新,如果不用该补丁频率高,无必要。关闭“恶意软件删除更新”,只需要用dism++关闭,步骤如下:

    2022年6月24日
    36
  • 爱的思念与牵挂_惦记牵挂短语

    爱的思念与牵挂_惦记牵挂短语爱和喜欢是同等的,由喜欢到真诚,由真诚到爱,是一个即复杂又简单的过程;说复杂,爱又是简单的;说简单,爱又是真诚,思念,挂念的综合;我挂念她;挂念她的一切;她心情不好了;我挂念她是否生意上有什么难处;她心情不好了;我挂念她是否又遇到什么烦心的事,我挂念她的身体,她经常头疼;是不是有因为什么事烦了她;是不是有什么人无谓的惹她生气;我让她好好休息,我祈祷一切烦恼远离她;我知道她心很软;知道她心很善良;知

    2022年9月20日
    2
  • 二级反渗透1T/H二级反渗透纯水机 纯净水反渗透设备 反渗透设备

    反渗透技术原理反渗透技术是美国六十年代后期为解决宇航员在太空的饮水问题而研制的高新技术,也是目前的膜分离技术。简单地说,反渗透装置是利用半透膜在压力差的作用下使含盐水脱盐纯化的设备,它能有效地去除水中的无机盐、细菌、病毒、色素、热源、重金属离子及农药、化肥、清洁剂、胶体物质等污染物。反渗透膜孔径非常小,一般在2-10埃左右,而水中的各种离子杂质的直径约为几十埃,病毒、细菌的直径为几百至几十万埃,因此这些物质都是无法透过反渗透膜的,被截止在膜的浓水端,随浓水排出,透过反渗透膜的即是无菌,无毒害且富氧的纯净

    2022年4月17日
    47
  • 爬虫原理及应用

    https://www.cnblogs.com/luchun666/p/9394149.html链接:link…

    2022年4月9日
    47
  • pac模式与全局模式哪个好_ppp模式的优缺点

    pac模式与全局模式哪个好_ppp模式的优缺点众所周知,传统有一大弊端,即:只能使用全局模式,这样情况下,虽然可以加速国外网站,但打开国内网站速度会变慢;加速度不但支持全局模式,同时也支持PAC模式(智能分流,绕过中国大陆),这样情况下,既可以加速国外网站,也不会影响国内网站打开速度!温馨提示:安卓手机客户端、IOS客户端、MAC客户端均可根据自己实际使用需求,自由切换【PAC模式】或者【全局模式】,具体如何切换可查看相应客户端设置教程;…

    2022年10月19日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号