一日一技:用Python绘画有多好玩

本文展示了如何使用Python进行创意绘画,包括樱花树、皮卡丘、爱心发射、清明上河图、玫瑰花和圣诞树。通过Turtle库,作者详细解释了绘制过程,并提供了代码示例,让读者体验编程的浪漫和乐趣。
摘要由CSDN通过智能技术生成

前言

小编把之前发过的好玩的有趣的Python绘画结果总结起来发给大家,可以在各种节日跟心爱的那个TA来个浪漫表白哦~喜欢就收藏下来吧,多多支持哦~

https://docs.qq.com/doc/DT1ZIUFJmU0N1T0Rt

1、樱花树

今天刷漫画的时候看到那个樱花树开的真是太好看了,突然就想画个樱花树,然后趁着心情好就把它解析出来,嘿嘿是真的还蛮好看的,而且一个代码可以随机画出多种样式的。

樱花原产北半球温带环喜马拉雅山地区,在世界各地都有生长,主要在日本国生长。花每枝3到5朵,成伞状花序,花瓣先端缺刻,花色多为白色、粉红色。花常于3月与叶同放或叶后开花,随季节变化,樱花花色幽香艳丽,常用于园林观赏。樱花可分单瓣和复瓣两类,单瓣类能开花结果,复瓣类多半不结果。

Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。

Turtle库是Python语言中一个很流行的绘制图像的函数库。

想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制。

(一)绘制画幕

首先绘制画幕,命令说明如下:

1.screensize(width, height, bg=color):设置画幕大小及颜色

2.setup(p1, p2):设置画幕大小,当 p1、p2 为小数时表示屏幕占比;当 p1、p2 为整数时表示像素

3.tracer(speed):设置绘制速度,speed越大表示绘制速度越快

def get_screen(width, height, color, speed):
    # 创建画幕
    screen_obj = turtle.Screen()
    # 画布大小:(width, height),颜色:color
    screen_obj.screensize(width, height, bg=color)
    screen_obj.setup(1.0, 1.0)
    # speed倍加速
    screen_obj.tracer(speed)
 
    return screen_obj

(二)绘制落花

在确定落花数量的情况下,我们首先要评估落花的范围,这里通过两句语句来约束落花的范围(落花数量越多,当然地落花范围也就越大):

# 有正有负就可以让画笔往二个方向走
x = flower - 4 * flower * random()
 
# 花瓣整体宽度(-10, 10)
y = 10 - 20 * random()

然后我们来讲讲 turtle 常用的几个命令吧:

首先,我们得明确,对于 turtle 画布来说,其为一个 xOy 的平面,画布中心为原点 O ;对于 turtle 画笔来说,其有一个初始方向,指向 x 轴正方向。

1.penup():起笔(可以想象成画画的时候沾墨之后提笔)

2.forward():向前移动

3.backward():向后移动

4.left(degree):逆时针旋转 degree 度

5.right(degree):顺时针旋转 degree 度

6.pendown():落笔

7.pencolor(color):笔墨颜色为 color

8.circle(r):画一个半径为 r 的圆

代码如下:

def draw_petal(turtle_obj, flower):
    # 绘制掉落的花瓣
    for i in range(int(flower / 2)):
        # 有正有负就可以让画笔往二个方向走
        x = flower - 2 * flower * random()
 
        # 花瓣整体宽度(-10, 10)
        y = 10 - 20 * random()
 
        # 提笔,向前y,左转90,走x,落笔
        turtle_obj.penup()
        turtle_obj.forward(y)
        turtle_obj.left(90)
    
评论 34
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值