用python语言绘制美丽图形

一、用python绘制太阳花
源代码如下:

from turtle import *

color('green','red')

begin_fill()

while True:

    forward(300)

    left(170)

    if abs(pos()) < 1:

            break

end_fill()

done()

获得结果如下图所示:
在这里插入图片描述
二、用python绘制科赫曲线
源代码:

#DrawKoch.py
import turtle
def koch(size, n):
    if n == 0:
        turtle.fd(size)
    else:
        for angle in [0, 60, -120, 60]:
            turtle.left(angle)
            koch(size/3, n-1)
def main():
    k=eval(input("请输入科赫曲线阶数:"))
    turtle.setup(800,400)
    turtle.speed(100) #控制绘制速度
    turtle.penup()
    turtle.goto(-300, -50)
    turtle.pendown()
    turtle.pensize(2)
    koch(600,k)
    turtle.hideturtle()
main()

得到图形:
在这里插入图片描述
三、用python绘制哆啦A梦头像
源代码如下:

import turtle as t
 
t.speed(10)
t.pensize(8)
t.hideturtle()
t.screensize(500, 500, bg='white')
 
# 猫脸
t.fillcolor('#00A1E8')
t.begin_fill()
t.circle(120)
t.end_fill()
 
t.pensize(3)
t.fillcolor('white')
t.begin_fill()
t.circle(100)
t.end_fill()
 
t.pu()
t.home()
t.goto(0, 134)
t.pd()
t.pensize(4)
t.fillcolor("#EA0014")
t.begin_fill()
t.circle(18)
t.end_fill()
 
t.pu()
t.goto(7, 155)
t.pensize(2)
t.color('white', 'white')
t.pd()
t.begin_fill()
t.circle(4)
t.end_fill()
 
t.pu()
t.goto(-30, 160)
t.pensize(4)
t.pd()
t.color('black', 'white')
t.begin_fill()
a = 0.4
for i in range(120):
    if 0 <= i < 30 or 60 <= i < 90:
        a = a+0.08
        t.lt(3) #向左转3度
        t.fd(a) #向前走a的步长
    else:
        a = a-0.08
        t.lt(3)
        t.fd(a)
t.end_fill()
 
t.pu()
t.goto(30, 160)
t.pensize(4)
t.pd()
t.color('black', 'white')
t.begin_fill()
for i in range(120):
    if 0 <= i < 30 or 60 <= i < 90:
        a = a+0.08
        t.lt(3)  # 向左转3度
        t.fd(a)  # 向前走a的步长
    else:
        a = a-0.08
        t.lt(3)
        t.fd(a)
t.end_fill()
 
t.pu()
t.goto(-38,190)
t.pensize(8)
t.pd()
t.right(-30)
t.forward(15)
t.right(70)
t.forward(15)
 
t.pu()
t.goto(15, 185)
t.pensize(4)
t.pd()
t.color('black', 'black')
t.begin_fill()
t.circle(13)
t.end_fill()
 
t.pu()
t.goto(13, 190)
t.pensize(2)
t.pd()
t.color('white', 'white')
t.begin_fill()
t.circle(5)
t.end_fill()
 
t.pu()
t.home()
t.goto(0, 134)
t.pensize(4)
t.pencolor('black')
t.pd()
t.right(90)
t.forward(40)
 
t.pu()
t.home()
t.goto(0, 124)
t.pensize(3)
t.pencolor('black')
t.pd()
t.left(10)
t.forward(80)
 
t.pu()
t.home()
t.goto(0, 114)
t.pensize(3)
t.pencolor('black')
t.pd()
t.left(6)
t.forward(80)
 
t.pu()
t.home()
t.goto(0,104)
t.pensize(3)
t.pencolor('black')
t.pd()
t.left(0)
t.forward(80)
 
# 左边的胡子
t.pu()
t.home()
t.goto(0,124)
t.pensize(3)
t.pencolor('black')
t.pd()
t.left(170)
t.forward(80)
 
t.pu()
t.home()
t.goto(0, 114)
t.pensize(3)
t.pencolor('black')
t.pd()
t.left(174)
t.forward(80)
 
t.pu()
t.home()
t.goto(0, 104)
t.pensize(3)
t.pencolor('black')
t.pd()
t.left(180)
t.forward(80)
 
t.pu()
t.goto(-70, 70)
t.pd()
t.color('black', 'red')
t.pensize(6)
t.seth(-60)
t.begin_fill()
t.circle(80,40)
t.circle(80,80)
t.end_fill()
 
t.pu()
t.home()
t.goto(-80,70)
t.pd()
t.forward(160)
 
t.pu()
t.home()
t.goto(-50,50)
t.pd()
t.pensize(1)
t.fillcolor("#eb6e1a")
t.seth(40)
t.begin_fill()
t.circle(-40, 40)
t.circle(-40, 40)
t.seth(40)
t.circle(-40, 40)
t.circle(-40, 40)
t.seth(220)
t.circle(-80, 40)
t.circle(-80, 40)
t.end_fill()
 
# 领带
t.pu()
t.goto(-70, 12)
t.pensize(14)
t.pencolor('red')
t.pd()
t.seth(-20)
t.circle(200, 30)
t.circle(200, 10)
 
# 铃铛
t.pu()
t.goto(0, -46)
t.pd()
t.pensize(3)
t.color("black", '#f8d102')
t.begin_fill()
t.circle(25)
t.end_fill()
 
 
t.pu()
t.goto(-5, -40)
t.pd()
t.pensize(2)
t.color("black", '#79675d')
t.begin_fill()
t.circle(5)
t.end_fill()
 
t.pensize(3)
t.right(115)
t.forward(7)
 
t.mainloop()


得到如下图形:
在这里插入图片描述
本人对python内容也是初学,还请多多指教。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
### 回答1: Python是一种流行的编程语言,具有许多强大的绘图库,能够以各种方式绘制复杂的图形,包括3D图形。下面是如何使用Python绘制一个立体玫瑰花的步骤。 首先,需要安装一些必要的Python库,如NumPy和Matplotlib。在安装完成后,导入这些库: ```python import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D ``` 接下来,定义一个函数,该函数将生成一个立体玫瑰花的坐标数据: ```python def rose_curve(a, n): k = n / float(a) theta = np.linspace(0, 2*np.pi, 1000) r = np.sin(k*theta) x = r*np.cos(theta) y = r*np.sin(theta) z = np.cos(k*theta) return x, y, z ``` 其中,参数a和n分别为两个常数,调整它们可以改变玫瑰花的形状。theta为角度数组,r是半径数组,x、y和z分别为三个坐标数组。 最后,将这些数据用mpl_toolkits.mplot3d库中的Axes3D和plot_surface函数绘制出来: ```python a = 3 n = 2 fig = plt.figure() ax = Axes3D(fig) x, y, z = rose_curve(a, n) ax.plot_surface(x, y, z, cmap='viridis') plt.show() ``` 上述代码块将生成一个美丽的立体玫瑰花。可以尝试不同的a和n的值来改变它的形状,并根据需要调整其他参数。 总之,Python绘制立体图形非常强大,尤其是与Matplotlib、NumPy和mpl_toolkits.mplot3d库的搭配使用,能够创建出各种复杂的形态,包括一个惊人的立体玫瑰花。 ### 回答2: Python是一种非常流行的编程语言,它可以用来进行各种任务。其中一个任务就是绘制立体玫瑰花。要绘制立体玫瑰花,我们需要用到Python的一个绘图模块——Matplotlib。Matplotlib是Python中非常强大的绘图库,它可以让我们快速、简单地进行各种绘图任务。 要绘制立体玫瑰花,我们需要按照以下步骤进行: 首先,我们需要导入Matplotlib库以及一些常用的数学库,如numpy和math。 import numpy as np import math import matplotlib.pyplot as plt 接着,我们定义一些变量。这些变量将用于定义玫瑰花的形状、颜色和大小。在这里,我们定义了petal_count(花瓣数)、petal_radius(花瓣半径)和petal_thickness(花瓣厚度)等变量。 petal_count = 15 petal_radius = 0.6 petal_thickness = 0.2 我们还需要定义一些函数来计算花瓣的形状和位置。这些函数将使用三角函数来计算圆的上下文。在这里,我们定义了一个函数叫做superformula(超级公式),这个函数将用于计算玫瑰花的形状。 def superformula(theta, a, b, m, n1, n2, n3): part1 = np.power(np.abs(np.cos(m*theta/4)/a), n2) part2 = np.power(np.abs(np.sin(m*theta/4)/b), n3) r = np.power(part1 + part2, -1/n1) return r 现在,我们可以开始绘制花瓣了。我们定义一个变量theta来表示theta角度的范围。然后,我们可以使用superformula函数来计算花瓣的形状,最后将花瓣绘制出来。 theta = np.linspace(0, 2*np.pi, 1000) for i in range(petal_count): r = superformula(theta+2*i*np.pi/petal_count, petal_radius, petal_radius, 2, 2, 2, 7) plt.plot(theta, r, color="pink", linewidth=petal_thickness, alpha=0.8) 最后,我们可以添加一些装饰来使玫瑰花更美丽。我们可以添加一个标题、定义x和y轴标签、添加坐标轴范围、设置背景颜色等。 plt.title("3D Rose Flower") plt.xlabel("X axis") plt.ylabel("Y axis") plt.xlim(-2,2) plt.ylim(0,2) plt.gca().set_facecolor("black") plt.show() 以上就是使用Python绘制立体玫瑰花的方法。如果你想绘制更复杂的玫瑰花,可以通过调整petal_count、petal_radius和petal_thickness等参数来实现。Python的灵活性和强大性可以让我们轻松地实现各种绘图任务。 ### 回答3: 立体玫瑰花指的是一种三维形态的玫瑰花。要用Python绘制出这种立体玫瑰花,需要用到一些基本的绘图函数和数学公式。 首先,我们需要导入绘图库matplotlib以及数学库numpy。 ```python import matplotlib.pyplot as plt import numpy as np ``` 接下来,定义一个函数,使用极坐标方式计算立体玫瑰花的各个顶点坐标。极坐标系的参数有极径和极角,而玫瑰花的形状由极角决定。 ```python def rosette(theta, n, d): r = np.cos(n*theta*(np.pi/180)) return r*np.cos(theta*(np.pi/180))*d, r*np.sin(theta*(np.pi/180))*d, np.sin(n*theta*(np.pi/180))*d ``` 然后,我们需要定义一组参数,以确定立体玫瑰花的形状和大小。具体来说,需要指定玫瑰花的花瓣数、旋转角度、颜色、透明度和大小。 ```python n = 7 # 花瓣数 d = 3 # 立体程度 theta = np.linspace(0, 360, 720) # 极角 colors = ['r', 'g', 'b', 'c', 'm', 'y', 'k'] # 颜色 alpha = 0.7 # 透明度 size = 100 # 大小 ``` 最后,我们调用matplotlib.pyplot的scatter3D方法,根据参数绘制立体玫瑰花。 ```python fig = plt.figure(figsize=(10, 10)) ax = fig.add_subplot(111, projection='3d') for i in range(n): x, y, z = rosette(theta, n, d) ax.scatter3D(x, y, z, s=size, color=colors[i%len(colors)], alpha=alpha) ax.view_init(elev=10, azim=i*(360/n)) plt.show() ``` 运行代码,就可以绘制出一朵立体玫瑰花。我们可以改变参数来调整花瓣数、立体程度、颜色、透明度和大小,绘制出不同形状的玫瑰花。 总的来说,Python绘制立体玫瑰花需要用到数学和绘图知识,需要使用numpy和matplotlib等库,但是只要按照上面的步骤进行操作,就可以十分简单地完成绘制

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猛汉轻敲乱码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值