Usa Python para dibujar una rosa y dársela a su especial

prefacio

Hola, hola, cuenta regresiva de tres días y nueve horas para la víspera de Año Nuevo

La última vez que publiqué un artículo sobre fuegos artificiales, parece que mucha gente todavía necesita código

Hagamos una flor única hoy~ (Dáselo a quien te guste)

Efecto

Sin más preámbulos, veamos primero el efecto, después de todo, no puedo hacer nada si no se ve bien.

Déjame decirte de antemano que haré mi mejor esfuerzo.

inserte la descripción de la imagen aquí

el código

módulo

Código fuente Click para recibir

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
from matplotlib.font_manager import FontProperties
  • Cambie la perspectiva de dibujar la imagen, es decir, la posición de la cámara, azim gira a lo largo del eje z y elev a lo largo del eje y

El contenido de texto en el medio se puede personalizar y modificar.

python学习交流Q群:309488165 ### 源码领取
fig = plt.figure(figsize=(6, 8))
ax = fig.gca(projection='3d')
elev = 22
azim = 2.5
ax.view_init(elev, azim)  # 改变绘制图像的视角,即相机的位置,azim沿着z轴旋转,elev沿着y轴
font_set = FontProperties(fname=r"C:\Windows\Fonts\simhei.TTF", size=20)
ax.text(1, -0.8, 0, '"唯一的花送给我爱的宝贝"', fontproperties=font_set)
[x, t] = np.meshgrid(np.array(range(30)) / 28.0, np.arange(0, 575.5, 0.5) / 575 * 17 * np.pi - 2 * np.pi)
p = (np.pi / 2) * np.exp(-t / (8 * np.pi))
u = 1 - (1 - np.mod(3.6 * t, 2 * np.pi) / np.pi) ** 4 / 2
y = 2 * (x ** 2 - x) ** 2 * np.sin(p)
r = u * (x * np.sin(p) + y * np.cos(p))
h = 4 + u * (x * np.cos(p) - y * np.sin(p)) * 3
c = cm.get_cmap('Reds')
surf = ax.plot_surface(r * np.cos(t), r * np.sin(t), h, rstride=1, cstride=1, color='r',  # cmap= c,可改变花朵颜色
                       alpha=0.8, linewidth=0, antialiased=True)  # rstride和cstride为横竖方向的绘图采样步长,越小绘图越精细。

tallo de la flor

  • Divide el círculo en 50 partes iguales.
u2 = np.linspace(0, 2 * np.pi, 50)
  • Divida la altura 1 en 20 partes, el rango de altura del tallo de la rosa
h2 = np.linspace(0, 4, 20)  
  • valor xy repetido 20 veces
x2 = np.outer(0.05 * np.sin(u2), np.ones(len(h2)))  
y2 = np.outer(0.05 * np.cos(u2), np.ones(len(h2)))  
  • altura correspondiente a x, y
z2 = np.outer(np.ones(len(u2)), h2)  

código completo

Código fuente Click para recibir

inserte la descripción de la imagen aquí

Por fin

El intercambio de hoy termina aquí.

Por cierto, me gustaría recomendarte algunos videos tutoriales de Python, con la esperanza de ayudarte:

Colección de enseñanza basada en cero de Python

Si tiene alguna pregunta sobre el artículo u otras preguntas sobre python, puede dejar un mensaje en el área de comentarios o enviarme un mensaje privado. Si
cree que el artículo que compartí es bueno, puede seguirme o darle un pulgar hacia arriba. (/≧▽≦)/

Supongo que te gusta

Origin blog.csdn.net/yxczsz/article/details/128473683
Recomendado
Clasificación