怎么用python画圆的公式_运用python 画圆[通俗易懂]

importnumpyasnpimportmatplotlib.pyplotaspltfrommatplotlib.patchesimportPolygonimportmatplotlib.patchesasmpatchesfig=plt.figure(figsize=(16,8))ax=fig.gca()ax.set_xlim(-5,18)ax.set_yl…

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

0818b9ca8b590ca3270a3433284dd417.png

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()

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/129532.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • python urlopen()「建议收藏」

    首先调用urlopen需要导入urllib.request模块。urllib.request:urlopen():简单来说就是打开一个URL.url:来自百度百科urlopen的返回值,测试:可见返回值是http.client.HTTPResponsed对象。http.client.HTTPResponsed对象:详…

  • PhpStorm 2021.2 x64 激活码(已测有效)

    PhpStorm 2021.2 x64 激活码(已测有效),https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • 【毕设狗】【单片机毕业设计】基于单片机的温控风扇的设计–仿真设计[通俗易懂]

    【毕设狗】【单片机毕业设计】基于单片机的温控风扇的设计–仿真设计[通俗易懂]实物链接:基于单片机的温控风扇的设计-实物设计软件安装:Keil:点击下载 Proteus:点击下载 AD:点击下载 Visio:点击下载设计简介:本设计是基于单片机的温控风扇设计,主要实现以下功能:可实现通过DS18B20测量当前环境温度 可实现通过温度自动控制风扇转速 可实现通过按键设置不同风速对应的温度 可实现通过按键切换自动、手动模式 可实现在手动模式下通过按键调整风扇转速 可实现通过LCD1602显示温度、风扇转速挡位、自动/手动模式关键字:温度控制风扇

  • 查看Maven版本_maven部署

    查看Maven版本_maven部署一、下载压缩包官方地址:Maven-DownloadApacheMaven​maven.apache.org直接使用wget命令进行下载maven压缩包>wgethttps://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz二、解压ta…

  • JavaWeb项目(登录注册页面)全过程详细总结

    JavaWeb项目(登录注册页面)全过程详细总结JavaWeb项目(登录注册页面)全过程总结文章目录JavaWeb项目(登录注册页面)全过程总结一、环境准备与开发工具二、创建JavaWeb项目2.1新建DynamicWebProject项目2.2创建前端页面2.2.1登录页面1.login.jsp2.login.js3.time.js4.focus.js+animate.js2.2.2注册页面(register.jsp)2.2.3修改密码的页面(change_pwd.jsp)2.2.4登录成功的页面(success.jsp

  • 贝塞尔方程与贝塞尔函数学习笔记

    贝塞尔方程与贝塞尔函数学习笔记《数学物理方法(顾樵)》第13章学习笔记第一节几个微分方程的引入三维波动方程:∂2v∂t2=a2(∂2v∂x2+∂2v∂y2+∂2v∂z2)≡a2∇2v\frac{\partial^2v}{\partialt^2}=a^2(\frac{\partial^2v}{\partialx^2}+\frac{\partial^2v}{\partialy^2}+\frac{\partial^2v}{\partialz^2})\equiva^2\nabla^2v∂t2.

    2022年10月26日

发表回复

您的电子邮箱地址不会被公开。

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