Skip to main content

moregeek program

10个Python绘画表白代码【内附源码,再不收藏你只能单身了】-多极客编程

发现一些很好玩的画图小项目,今天分享给大家,教你怎样用Python画一朵玫瑰花、时钟、爱心、太阳花、月饼、进阶自定义爱心、小猪佩奇、星空、超梦幻的蓝色背景樱花等大家快来学习吧。

运行工具:

pycharm 、python

玫瑰花

效果图:

10个Python绘画表白代码【内附源码,再不收藏你只能单身了】_程序员


源码:

from turtle import *
import time

setup(1000,800,0,0)
speed(0)
penup()
seth(90)
fd(340)
seth(0)
pendown()

speed(5)
begin_fill()
fillcolor('red')
circle(50,30)

for i in range(10):
fd(1)
left(10)

circle(40,40)

for i in range(6):
fd(1)
left(3)

circle(80,40)

for i in range(20):
fd(0.5)
left(5)

circle(80,45)

for i in range(10):
fd(2)
left(1)

circle(80,25)

for i in range(20):
fd(1)
left(4)

circle(50,50)

time.sleep(0.1)

circle(120,55)

speed(0)

seth(-90)
fd(70)

right(150)
fd(20)

left(140)
circle(140,90)

left(30)
circle(160,100)

left(130)
fd(25)

penup()
right(150)
circle(40,80)
pendown()

left(115)
fd(60)

penup()
left(180)
fd(60)
pendown()

end_fill()

right(120)
circle(-50,50)
circle(-20,90)

speed(1)
fd(75)

speed(0)
circle(90,110)

penup()
left(162)
fd(185)
left(170)
pendown()
circle(200,10)
circle(100,40)
circle(-52,115)
left(20)
circle(100,20)
circle(300,20)
speed(1)
fd(250)

penup()
speed(0)
left(180)
fd(250)
circle(-300,7)
right(80)
circle(200,5)
pendown()

left(60)
begin_fill()
fillcolor('green')
circle(-80,100)
right(90)
fd(10)
left(20)
circle(-63,127)
end_fill()

penup()
left(50)
fd(20)
left(180)

pendown()
circle(200,25)

penup()
right(150)

fd(180)

right(40)
pendown()
begin_fill()
fillcolor('green')
circle(-100,80)
right(150)
fd(10)
left(60)
circle(-80,98)
end_fill()

penup()
left(60)
fd(13)
left(180)

pendown()
speed(1)
circle(-200,23)



exitonclick()


实时时钟

效果图:

10个Python绘画表白代码【内附源码,再不收藏你只能单身了】_计算机_02

源码:


# coding=utf-8



import turtle

from datetime import *



# 抬起画笔,向前运动一段距离放下

def Skip(step):

turtle.penup()

turtle.forward(step)

turtle.pendown()



def mkHand(name, length):

# 注册Turtle形状,建立表针Turtle

turtle.reset()

Skip(-length * 0.1)

# 开始记录多边形的顶点。当前的乌龟位置是多边形的第一个顶点。

turtle.begin_poly()

turtle.forward(length * 1.1)

# 停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点。将与第一个顶点相连。

turtle.end_poly()

# 返回最后记录的多边形。

handForm = turtle.get_poly()

turtle.register_shape(name, handForm)



def Init():

global secHand, minHand, hurHand, printer

# 重置Turtle指向北

turtle.mode("logo")

# 建立三个表针Turtle并初始化

mkHand("secHand", 135)

mkHand("minHand", 125)

mkHand("hurHand", 90)

secHand = turtle.Turtle()

secHand.shape("secHand")

minHand = turtle.Turtle()

minHand.shape("minHand")

hurHand = turtle.Turtle()

hurHand.shape("hurHand")



for hand in secHand, minHand, hurHand:

hand.shapesize(1, 1, 3)

hand.speed(0)



# 建立输出文字Turtle

printer = turtle.Turtle()

# 隐藏画笔的turtle形状

printer.hideturtle()

printer.penup()



def SetupClock(radius):

# 建立表的外框

turtle.reset()

turtle.pensize(7)

for i in range(60):

Skip(radius)

if i % 5 == 0:

turtle.forward(20)

Skip(-radius - 20)



Skip(radius + 20)

if i == 0:

turtle.write(int(12), align="center", font=("Courier", 14, "bold"))

elif i == 30:

Skip(25)

turtle.write(int(i/5), align="center", font=("Courier", 14, "bold"))

Skip(-25)

elif (i == 25 or i == 35):

Skip(20)

turtle.write(int(i/5), align="center", font=("Courier", 14, "bold"))

Skip(-20)

else:

turtle.write(int(i/5), align="center", font=("Courier", 14, "bold"))

Skip(-radius - 20)

else:

turtle.dot(5)

Skip(-radius)

turtle.right(6)



def Week(t):

week = ["星期一", "星期二", "星期三",

"星期四", "星期五", "星期六", "星期日"]

return week[t.weekday()]



def Date(t):

y = t.year

m = t.month

d = t.day

return "%s %d%d" % (y, m, d)



def Tick():

# 绘制表针的动态显示

t = datetime.today()

second = t.second + t.microsecond * 0.000001

minute = t.minute + second / 60.0

hour = t.hour + minute / 60.0

secHand.setheading(6 * second)

minHand.setheading(6 * minute)

hurHand.setheading(30 * hour)



turtle.tracer(False)

printer.forward(65)

printer.write(Week(t), align="center",

font=("Courier", 14, "bold"))

printer.back(130)

printer.write(Date(t), align="center",

font=("Courier", 14, "bold"))

printer.home()

turtle.tracer(True)



# 100ms后继续调用tick

turtle.ontimer(Tick, 100)



def main():

# 打开/关闭龟动画,并为更新图纸设置延迟。

turtle.tracer(False)

Init()

SetupClock(160)

turtle.tracer(True)

Tick()

turtle.mainloop()



if __name__ == "__main__":

main()


表白爱心

效果图:

10个Python绘画表白代码【内附源码,再不收藏你只能单身了】_计算机_03

源码:

import turtle
import math
turtle.pen()
t=turtle
t.up()
t.goto(0,150)
t.down()
t.color('red')
t.begin_fill()
t.fillcolor('red')
t.speed(1)
t.left(45)
t.forward(150)
t.right(45)
t.forward(100)
t.right(45)
t.forward(100)
t.right(45)
t.forward(100)
t.right(45)
t.forward(250+math.sqrt(2)*100)
t.right (90)
t.speed(2)
t.forward(250+100*math.sqrt(2))
t.right(45)
t.forward(100)
t.right(45)
t.forward(100)
t.right(45)
t.forward(100)
t.right(45)
t.forward(150)
t.end_fill()
t.goto(-10,0)
t.pencolor('white')
#L
t.pensize(10)
t.goto(-50,0)
t.goto(-50,80)
t.up ()
#I
t.goto(-100,0)
t.down()
t.goto(-160,0)
t.goto(-130,0)
t.goto(-130,80)
t.goto(-160,80)
t.goto(-100,80)
t.up()
#O
t.goto(10,25)
t.down()
t.right(45)
t.circle(25,extent=180)
t.goto(60,55)
t.circle(25,extent=180)
t.goto(10,25)
t.up()
t.goto(75,80)
t.down()
t.goto(100,0)
t.goto(125,80)
t.up()
t.goto(180,80)
t.down()
t.goto(140,80)
t.goto(140,0)
t.goto(180,0)
t.up()
t.goto(180,40)
t.down()
t.goto(140,40)
#U
t.up()
t.goto(-40,-30)
t.down()
t.goto(-40,-80)
t.circle(40,extent=180)
t.goto(40,-30)
t.hideturtle()



小猪佩奇

效果图:

10个Python绘画表白代码【内附源码,再不收藏你只能单身了】_计算机_04

源码:

# coding:utf-8
import time
import turtle as t

t.pensize(4)
t.colormode(255)
t.color((255,155,192),"pink")
t.setup(840,500)
t.speed(10)
t.pu()
t.goto(-100,100)
t.pd()
t.seth(-30)
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)
t.fd(a)
else:
a=a-0.08
t.lt(3)
t.fd(a)
t.end_fill()
t.pu()
t.seth(90)
t.fd(25)
t.seth(0)
t.fd(10)
t.pd()
t.pencolor(255,155,192)
t.seth(10)
t.begin_fill()
t.circle(5)
t.color(160,82,45)
t.end_fill()
t.pu()
t.seth(0)
t.fd(20)
t.pd()
t.pencolor(255,155,192)
t.seth(10)
t.begin_fill()
t.circle(5)
t.color(160,82,45)
t.end_fill()

t.color((255,155,192),"pink")
t.pu()
t.seth(90)
t.fd(41)
t.seth(0)
t.fd(0)
t.pd()
t.begin_fill()
t.seth(180)
t.circle(300,-30)
t.circle(100,-60)
t.circle(80,-100)
t.circle(150,-20)
t.circle(60,-95)
t.seth(161)
t.circle(-300,15)
t.pu()
t.goto(-100,100)
t.pd()
t.seth(-30)
a=0.4
for i in range(60):
if 0<=i<30 or 60<=i<90:
a=a+0.08
t.lt(3)
t.fd(a)
else:
a=a-0.08
t.lt(3)
t.fd(a)
t.end_fill()

t.color((255,155,192),"pink")
t.pu()
t.seth(90)
t.fd(-7)
t.seth(0)
t.fd(70)
t.pd()
t.begin_fill()
t.seth(100)
t.circle(-50,50)
t.circle(-10,120)
t.circle(-50,54)
t.end_fill()
t.pu()
t.seth(90)
t.fd(-12)
t.seth(0)
t.fd(30)
t.pd()
t.begin_fill()
t.seth(100)
t.circle(-50,50)
t.circle(-10,120)
t.circle(-50,56)
t.end_fill()

t.color((255,155,192),"white")
t.pu()
t.seth(90)
t.fd(-20)
t.seth(0)
t.fd(-95)
t.pd()
t.begin_fill()
t.circle(15)
t.end_fill()
t.color("black")
t.pu()
t.seth(90)
t.fd(12)
t.seth(0)
t.fd(-3)
t.pd()
t.begin_fill()
t.circle(3)
t.end_fill()
t.color((255,155,192),"white")
t.pu()
t.seth(90)
t.fd(-25)
t.seth(0)
t.fd(40)
t.pd()
t.begin_fill()
t.circle(15)
t.end_fill()
t.color("black")
t.pu()
t.seth(90)
t.fd(12)
t.seth(0)
t.fd(-3)
t.pd()
t.begin_fill()
t.circle(3)
t.end_fill()
#腮
t.color((255,155,192))
t.pu()
t.seth(90)
t.fd(-95)
t.seth(0)
t.fd(65)
t.pd()
t.begin_fill()
t.circle(30)
t.end_fill()
#嘴
t.color(239,69,19)
t.pu()
t.seth(90)
t.fd(15)
t.seth(0)
t.fd(-100)
t.pd()
t.seth(-80)
t.circle(30,40)
t.circle(40,80)
#身体
t.color("red",(255,99,71))
t.pu()
t.seth(90)
t.fd(-20)
t.seth(0)
t.fd(-78)
t.pd()
t.begin_fill()
t.seth(-130)
t.circle(100,10)
t.circle(300,30)
t.seth(0)
t.fd(230)
t.seth(90)
t.circle(300,30)
t.circle(100,3)
t.color((255,155,192),(255,100,100))
t.seth(-135)
t.circle(-80,63)
t.circle(-150,24)
t.end_fill()
#手
t.color((255,155,192))
t.pu()
t.seth(90)
t.fd(-40)
t.seth(0)
t.fd(-27)
t.pd()
t.seth(-160)
t.circle(300,15)
t.pu()
t.seth(90)
t.fd(15)
t.seth(0)
t.fd(0)
t.pd()
t.seth(-10)
t.circle(-20,90)
t.pu()
t.seth(90)
t.fd(30)
t.seth(0)
t.fd(237)
t.pd()
t.seth(-20)
t.circle(-300,15)
t.pu()
t.seth(90)
t.fd(20)
t.seth(0)
t.fd(0)
t.pd()
t.seth(-170)
t.circle(20,90)
#脚
t.pensize(10)
t.color((240,128,128))
t.pu()
t.seth(90)
t.fd(-75)
t.seth(0)
t.fd(-180)
t.pd()
t.seth(-90)
t.fd(40)
t.seth(-180)
t.color("black")
t.pensize(15)
t.fd(20)
t.pensize(10)
t.color((240,128,128))
t.pu()
t.seth(90)
t.fd(40)
t.seth(0)
t.fd(90)
t.pd()
t.seth(-90)
t.fd(40)
t.seth(-180)
t.color("black")
t.pensize(15)
t.fd(20)
#尾巴
t.pensize(4)
t.color((255,155,192))
t.pu()
t.seth(90)
t.fd(70)
t.seth(0)
t.fd(95)
t.pd()
t.seth(0)
t.circle(60,20)
t.circle(10,230)
t.circle(60,30)


多角形太阳花

效果图:

10个Python绘画表白代码【内附源码,再不收藏你只能单身了】_程序人生_05

源码:


# coding=utf-8

import turtle

import time



# 同时设置pencolor=color1, fillcolor=color2

turtle.color("red", "yellow")



turtle.begin_fill()

for _ in range(50):

turtle.forward(200)

turtle.left(170)

turtle.end_fill()



turtle.mainloop()


进阶自定义表白爱心

效果图:

10个Python绘画表白代码【内附源码,再不收藏你只能单身了】_计算机_06

模拟3D星空

效果图:

10个Python绘画表白代码【内附源码,再不收藏你只能单身了】_程序人生_07

超梦幻的蓝色背景樱花

效果图:

10个Python绘画表白代码【内附源码,再不收藏你只能单身了】_程序人生_08

花儿

效果图:

10个Python绘画表白代码【内附源码,再不收藏你只能单身了】_代码_09

表白爱心树

效果图:

10个Python绘画表白代码【内附源码,再不收藏你只能单身了】_编程_10

其他

10个Python绘画表白代码【内附源码,再不收藏你只能单身了】_程序员_11

其他源码领取可关注我的公众号:白又白学Python

iOS 屏幕实时共享功能实践(内附详细代码)-多极客编程

很多人对屏幕共享的印象还只停留在 PC 端做 PPT 汇报的场景中,但事实上,今天的屏幕共享早已跨界出圈了。比如一个大家很熟悉的场景 —— 游戏直播,主播就需要将自己的画面以“屏幕共享”的形式展示给观众,并且对实时性、流畅性的要求非常高。   对于很多手游主播来说,目前比较常见的做法是,通过借助 PC 端的中转将手机游戏画面进行直播分享;而实际上,通过调用融云屏幕共享 SDK,直接在手机端就可以拥

【翻译】编写代码注释的最佳实践-多极客编程

著名的麻省理工学院教授哈尔-艾贝尔森(Hal Abelson)曾说过: 代码首先是写给人看的,只是计算机拿去运行了而已。 虽然他可能故意的低估了计算机运行代码的重要性,但他说的是非常正确的。我们的成型有两个非常不同的受众。编译器和解释器不会关注代码的注释,对于计算机来说,所有语法正确的程序都是同样的容易理解的。而对于阅读代码的人来说,则完全是不一样的。我们发现有些的程序代码非常难以理解,我们希望通

使用AIDL和远程服务实现进程通信-多极客编程

      在Android中, 每个应用程序都有自己的进程,当需要在不同的进程之间传递对象时,该如何实现呢? 显然, Java中是不支持跨进程内存共享的。因此要传递对象, 需要把对象解析成操作系统能够理解的数据格式, 以达到跨界对象访问的目的。在JavaEE中,采用RMI通过序列化传递对象。在Android中, 则采用AIDL(Android Interface Definition Langu

❤超级详细万文零基础也能学的面向对象—没对象?new一个!-多极客编程

​ 面向对象(OOP)基本概念面向对象编程 —— Object Oriented Programming 简写 OOP 目标了解 面向对象 基本概念 面向对象基本概念 我们之前学习的编程方式就是面向过程 的 面相过程 和 面相对象,是两种不同的 编程方式对比 面向过程 的特点,可以更好地了解什么是面向对象 1.1 过程和函数(科普) 过程 是早期的一个编程概念过程 类似于函数,只能执行

开发的时候,人与人之间还是要少点儿信任之--注解方式防止重复请求-多极客编程

自定义注解方式防止前端同一时间多次重复提交 一、 前情提要 有这样一个业务,上课的时候老师给表现好的学生送小花花, 每节课都能统计出某个学生收到的花的总数。 按照产品需求,前端点击送花按钮后30秒内是不能再次送花的(信任的基础) (上课老师送花行为都进行统计了,可见互联网是多么可怕) 二、技术设计 2.1 库表设计 CREATE TABLE `t_student_flower` ( `id`

求你了,别再说数据库锁的只是索引了!!!-多极客编程

在MySQL数据库中,为了解决并发问题,引入了很多的锁机制,很多时候,数据库的锁是在有数据库操作的过程中自动添加的。 所以,这就导致很多程序员经常会忽略数据库的锁机制的真正的原理。比如,我经常在面试中会问候选人,你知道MySQL Innodb的锁,到底锁的是什么吗? 关于这个问题的回答,我听到过很多种,但是很少有人可以把他回答的很完美。因为想要回答好这个问题,需要对数据库的隔离级别、索引等都有一定

Java编程之伪共享与缓存行填充-多极客编程

最近在回顾Disruptor的相关知识,觉得Disruptor在计算机底层的领域确实比一般人厉害不少,以前在写程序的时候,基本是从应用逻辑的角度考虑,觉得设计模式+少量算法+ 优美的代码=理想的结果,但看完Disruptor的设计后,觉得只考虑应用本身是有一定的局限性,还需要懂底层,硬件层面的东西,就像Disruptor一样,通过底层优化,让程序有质的飞跃。下面就Disruptor提到的CPU缓存

扒一扒面向对象编程的另一面-多极客编程

​​摘要:尽管有很多小伙伴对面向对象的概念已经很很熟了,但是到底什么是面向对象编程?面向对象有哪些特性?面向对象编程能够为我们带来哪些便利?面向对象又有哪些不足呢?本文分享自华为云社区​​《【云驻共创】被吹捧了很多年的面向对象编程真的就这么完美吗?》​​,作者: 冰 河 。说到面向对象,相信很多小伙伴都已经很熟悉了,毕竟像Java、C++这种编程语言长期排在编程语言榜的前列,而且几乎每一所大学的软

面试官:MySQL的幻读是怎么被解决的?-多极客编程

这篇文章主要是讲一下幻读是怎么被解决的 在此之前要了解一下什么是幻读什么是幻读?如下图所示然后前几天有位读者跟我说,我这个幻读例子不是已经被「可重复读」隔离级别解决了吗?为什么还要有 next-key 呢? 他有这个质疑,是因为他做了这个实验。 实验的数据库表 t_stu 如下,其中 id 为主键。然后在可重复读隔离级别下,有两个事务的执行顺序如下:从这个实验结果可以看到,即使事务