Python程序绘制印度国旗


Python 的绘图库拥有非常广泛的功能,不仅可以生成图表,还可以灵活地绘制其他图形,例如国旗。从这个意义上说,这些模块具有一定的艺术性。在本文中,我们将了解如何使用 numpy 和 matplotlib 库绘制印度国旗。

方法

  • 我们创建三个相同宽度的矩形,并使用适当的颜色和边框绘制它们。

  • 使用 pyplot 函数在中间矩形的中心绘制阿育王法轮的圆形。

  • 使用 numpy 和 matplotlib 绘制阿育王法轮内部的 24 条线。

  • 在以上所有绘图中,我们都会指定颜色、边框、半径和线长,以满足我们所需国旗最终尺寸的要求。

程序

我们使用以下程序实现上述方法。

示例

import numpy as np
import matplotlib.pyplot as py
import matplotlib.patches as patch
#Plotting the tri colours in national flag
a = patch.Rectangle((0,1), width=12, height=2, facecolor='green', edgecolor='grey')
b = patch.Rectangle((0,3), width=12, height=2, facecolor='white', edgecolor='grey')
c = patch.Rectangle((0,5), width=12, height=2, facecolor='#FF9933', edgecolor='grey')
m,n = py.subplots()
n.add_patch(a)
n.add_patch(b)
n.add_patch(c)
#AshokChakra Circle
radius=0.8
py.plot(6,4, marker = 'o', markerfacecolor = '#000088ff', markersize = 9.5)
chakra = py.Circle((6, 4), radius, color='#000088ff', fill=False, linewidth=7)
n.add_artist(chakra)
#24 spokes in AshokChakra
for i in range(0,24):
   p = 6 + radius/2 * np.cos(np.pi*i/12 + np.pi/48)
   q = 6 + radius/2 * np.cos(np.pi*i/12 - np.pi/48)
   r = 4 + radius/2 * np.sin(np.pi*i/12 + np.pi/48)
   s = 4 + radius/2 * np.sin(np.pi*i/12 - np.pi/48)
   t = 6 + radius * np.cos(np.pi*i/12)
   u = 4 + radius * np.sin(np.pi*i/12)
   n.add_patch(patch.Polygon([[6,4], [p,r], [t,u],[q,s]], fill=True, closed=True, color='#000088ff'))
py.axis('equal')
py.show()

输出

运行以上代码将得到以下结果:

更新于: 2020年2月4日

2K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告