Python表白比心

本文介绍运用Python中的turtle库控制函数画比心图。
  

文章目录

    • 一、效果展示
    • 二、代码详解
      • 1 导入库
      • 2 播放音乐
      • 3 画手
      • 4 定义画心的函数
      • 5 定义写名字的函数并实现动态画心

  

一、效果展示

  
在介绍代码之前,先来看下本文的实现效果。

可以参考Pinstaller(Python打包为exe文件)一文把Python文件转化成exe,发给未安装Python的Ta。

  
  

二、代码详解

  
Python绘制比心图的原理是:应用turtle库控制函数绘制不同曲线构成比心图。
  

1 导入库

  
首先导入本文需要加载的库,如果你有些库还没有安装,导致运行代码时报错,可以在Anaconda Prompt中用pip方法安装。

# -*- coding: UTF-8 -*-
'''
代码用途 :画比心手
作者     :阿黎逸阳
博客     :  https://blog.csdn.net/qq_32532663/article/details/106176609
'''
import os
import pygame
import turtle as t 
from time import sleep

本文应用到的库较少,只应用了os、pygame、turtle和time四个库。
  
os库可以设置文件读取的位置。
  
pygame库是为了绘制过程更有趣,在绘图过程中添加了背景音乐。
  
turtle库是绘图库,相当于给你一支画笔,你可以在画布上用数学逻辑控制的代码完成绘图。
  
time库可以设置程序休眠的时间,达到动态画心的效果。

  
  

2 播放音乐

  
接着应用pygame库播放背景音乐,本文的音乐是《赵海洋 - 《瞬间的永恒》夜色钢琴曲》。

#播放音乐
print('播放音乐')
pygame.mixer.init()
pygame.mixer.music.load(r"F:\公众号\520\赵海洋 - 《瞬间的永恒》夜色钢琴曲.mp3") 
pygame.mixer.music.set_volume(0.5) 
pygame.mixer.music.play(1, 10)

这一部分的代码和整体代码是剥离的,可以选泽在最开始放上该代码,也可以直接删除。如果选择播放音乐,需要在代码music.load函数中把你想放音乐的电脑本地存放地址填进去。有部分朋友对这一块有疑问,填充格式可参考如下图片:

在这里插入图片描述

  
  

3 画手

  
然后设置画板的大小,并画手。

#画图
print('画图')
t.title('阿黎逸阳的代码公众号')
t.speed(1)
#t.screensize(1000, 800)
t.setup(startx=0, starty = 0, width=800, height = 600)
#第一根手指头
print('画第一跟手指头')
t.penup()
t.goto(0, 60)
t.pendown()
t.color('black')
t.pensize(2)
t.setheading(30)
t.circle(-200, 30)
t.circle(-8, 120)
t.setheading(205)
t.circle(-300, 12)
t.left(10)
t.forward(45)
#画第二条线
print('画第二条线')
t.penup()
t.goto(18, 13)
t.pendown()
t.setheading(20)
t.forward(50)
#画第三条线
print('画第三条线')
t.penup()
t.goto(18, -15)
t.pendown()
t.setheading(20)
t.forward(50)
#画第四条线
print('画第四条线')
t.penup()
t.goto(22, -36)
t.pendown()
t.setheading(10)
t.circle(90, 26)
#画第二根手指的弧线
print('画第二根手指的弧线')
t.penup()
t.goto(55, 55)
t.pendown()
t.setheading(-20)
t.circle(-25, 85)
#画第三根手指的弧线
print('画第三根手指的弧线')
t.penup()
t.goto(62, 30)
t.pendown()
t.setheading(-10)
t.circle(-20, 120)
#画第四根手指弧线
print('画第四根手指的弧线')
t.penup()
t.goto(64, 2)
t.pendown()
t.setheading(-10)
t.circle(-20, 120)
t.right(5)
t.forward(20)
t.right(10)
t.circle(-10, 80)
t.setheading(78)
t.circle(-50, 30)
t.penup()
t.goto(57, -25)
t.pendown()
t.setheading(-50)
t.forward(10)
#手的下弧度
print('画手的下弧线')
t.penup()
t.goto(22, -36)
t.pendown()
t.setheading(270)
t.circle(-30, 80)
t.forward(10)
t.setheading(240)
t.forward(40)
#手的上弧度
print('画第手的上弧线')
t.penup()
t.goto(0, 60)
t.pendown()
t.setheading(190)
t.circle(150, 20)
t.setheading(225)
t.forward(10)
t.setheading(265)
t.forward(80)
t.setheading(230)
t.forward(60)
#画大拇指
print('画大拇指')
t.penup()
t.goto(8, 63)
t.pendown()
t.setheading(95)
t.circle(-80, 30)
t.circle(-10, 180)
t.left(20)
t.forward(20)
#画指甲
print('画指甲')
t.penup()
t.goto(84, 85)
t.pendown()
t.color('black', 'red')
t.begin_fill()
t.setheading(18)
t.circle(-50, 20)
t.setheading(270)
t.circle(-10, 170)
t.end_fill()

关键代码详解:
  
t.pensize(width):设置画笔的尺寸。
  
t.color(color):设置画笔的颜色。
  
t.penup():抬起画笔,一般用于另起一个地方绘图使用。
  
t.goto(x,y):画笔去到某个位置,参数为(x,y),对应去到的横坐标和纵坐标。
  
t.pendown():放下画笔,一般和penup组合使用。
  
t.left(degree):画笔向左转多少度,括号里表示度数。
  
t.right(degree):画笔向右转多少度,括号里表示度数。
  
t.circle(radius,extent,steps):radius指半径,若为正,半径在小乌龟左侧radius远的地方,若为负,半径在小乌龟右侧radius远的地方;extent指弧度;steps指阶数。
  
画手的关键是:通过调节circle函数中的半径和弧度来调节曲线的弧度,从而使得手的轮廓比较流畅。

  
  

4 定义画心的函数

  
接着定义画心的函数。

def heart_bit():#画爱心print('画爱心')t.penup()t.goto(70, 135)t.pendown()t.color('black', 'red')t.begin_fill()t.setheading(90)t.circle(10, 180)t.left(30)t.forward(30)t.setheading(30)t.forward(30)t.left(38)t.circle(12, 188)t.end_fill()

  
  

5 定义写名字的函数并实现动态画心

  
最后定义写名字的函数并实现动态画心。

def write_name(x, y, size, ss):t.hideturtle()t.penup()t.goto(x, y)t.pendown()t.pencolor('black')t.write(ss, font=('Times New Roman', size, 'normal'))
while 1:t.speed(10)print('写名字')write_name(5, 125, 12, '杨紫')write_name(5, 125, 12, '杨紫')heart_bit()sleep(1)t.undo()t.undo()t.undo()t.undo()t.undo()t.undo()t.undo()t.undo()t.undo()t.undo()t.undo()t.undo()t.undo()t.undo()t.undo()t.undo()t.undo()t.undo()t.undo()t.undo()t.undo()t.undo()t.undo()

注:如需全量直接可运行的代码和背景音乐,可在公众号中回复”比心“即可免费获取。
  
至此,在Python中实现比心的绘制逻辑已大致讲解完毕,替换名字送给你喜欢的Ta吧。

  
你可能感兴趣:
用Python绘制皮卡丘
用Python绘制词云图
用Python绘制520永恒心动
Python人脸识别—我的眼里只有你
Python画好看的星空图(唯美的背景)
【Python】情人节表白烟花(带声音和文字)
用Python中的py2neo库操作neo4j,搭建关联图谱
Python浪漫表白源码合集(爱心、玫瑰花、照片墙、星空下的告白)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/10518.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

程序员表白代码大全,快来向你的ta表白吧___

❤ 精彩专栏推荐👇🏻👇🏻👇🏻 💂 作者主页: 【进入主页—🚀获取更多源码】 🎓 web前端期末大作业: 【📚HTML5网页期末作业 (1000套) 】 &#x1…

不知道怎么跟喜欢的人表白 用这些代码给她

1.一行代码画爱心 print(\n.join([.join([(Love[(x-y)%4]if((x*0.05)**2(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<0 else )for x in range(-30,30)])for y in range(15,-15,-1)])) 效果图 文字加爱心 import turtle import math turtle.pen() tturtle t.up() t.goto(0,150…

手机微信表白弹窗,用微信就能撩到小姐姐小哥哥!!!

最近表白弹窗的撩妹方法在抖音非常火爆&#xff0c;随便录制一条都分分钟上百万点赞。 ▼ 小编之前也给大家介绍过制作方法&#xff0c;点击回顾【抖音点赞200w的“表白”弹窗&#xff0c;超强技能来袭&#xff01;】 ▼ 但之前的教程只能在电脑使用&#xff0c;很多宝宝拍砖…

Python绘制表白爱心源码【女神看了绝对不会拒绝的你的表白嘿嘿】

一个人在沙漠里快要饿死了&#xff0c;这时他捡到了神灯。 神灯&#xff1a;“我只可以实现你一个愿望&#xff0c;快说吧&#xff0c;我赶时间。” 人&#xff1a;“我要老婆……” 神灯立刻变出一个美女&#xff0c;然后不屑的说&#xff1a;“都快饿死了还贪图美色&#xff…

用R给心仪的对象表白吧

简介 早上听完讲座才想起来&#xff0c;今天520了。那这样吧&#xff0c;小编给做了个小小的惊喜给读者们&#xff0c;年轻的盆友可以用这“小玩意”给自己心仪的对象表白了。 其实就是一个简单的ggplot绘制爱心&#xff0c;做一点细节处理&#xff0c;并加入相应文字啦&#…

【HTML超浪漫的表白网页代码】不会编程也能制作送给女朋友的表白网站

❤ 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f482; 作者主页: 【进入主页—&#x1f680;获取更多源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;HTML5网页期末作业 (1000套) 】 &#x1…

520到了,用Python给女朋友比心表白

每到各种节日&#xff0c;不少小伙伴们都会遇到这样一个世纪问题——怎么给女朋友/老婆一个与众不同的节日惊喜。 这不又要到520了嘛&#xff0c;我们可以尝试用python给女朋友比心表白&#xff01;就像下面这样???? 下面快快就带大家来领略一下用Python表白的方式&#xf…

教你如何制作浪漫的表白网站

底部有彩蛋&#xff0c;不要错过(๑╹◡╹)&#xff89;""" #前言 前不久是情人节&#xff0c;一些小伙伴向我请求网页表白的教程&#xff0c;但因为比较忙&#xff0c;所以教程一直迟迟没有出来&#xff0c;趁着今天的闲暇时光&#xff0c;我把教程写出来。 虽…

【男生女生表白攻略】手把手教你制作有创意的表白软件

总有那么一个人让你脸红心跳&#xff0c;爱了却不敢说出来&#xff0c;真可惜。 那怎样才能向Ta表达自己真实的心情&#xff0c;怎样才能有机会追求自己所爱。必要的时候来学一些小技巧帮你爱情大作战。今天就跟大家介绍一个新颖有创意的表白方式&#xff0c;最适合不敢表白的人…

Python让女生无法拒绝的表白源代码

Python让女生无法拒绝的表白源代码&#xff0c;该程序在不接受表白时无法退出窗口&#xff0c;无法通过表白窗口的叉或程序内不接受按钮退出&#xff0c;需最大化表白窗口并点接受表白&#xff0c;方可退出。需要表白女生的图片可进行替换&#xff0c;图片也主程序放置在同一目…

明天就是5.20,这几个c语言表白代码发给你喜欢的女生,要是还没有女朋友直接来找我!!!

转眼间&#xff0c;今天好像已经2021年5月19日&#xff0c;明天好像是5月20号哎&#xff01;&#x1f614; 没想到吧&#xff01;一年一度的5.20它又来了。 又&#xff0c;又又又又又又来了&#xff01; 它踩着单生狗的身体&#xff0c;贱贱的向我们走来。&#x1f631; 是不…

520创意表白网站,让女友对你死心塌地。女神轻松领回家

可能很多女生都会觉得程序员都是直男&#xff0c;不懂浪漫。但是&#xff01;&#xff01;&#xff01;看完这个教程之后&#xff0c;让女友对你死心塌地。 这是一个基于js和html搭建的简单界面&#xff0c;你只需要把代码下载下来&#xff0c;然后再简单的改一下代码信息&…

HTML可用于情侣表白的爱心代码~,赶紧跟着操作,让她也拥有属于你的爱心吧。

文章目录 前言一、效果图二、操作步骤第一步第二步第三步第四步第五步第六步 源码 前言 最近随着电视剧《点燃我温暖你》的火热播出&#xff0c;剧中帅气学霸李洵的炫酷爱心代码也迅速火出了圈&#xff0c;爱心素材也异常火爆&#xff0c;我在这里整理了一份大家有需自取哦~ 可…

【七】springboot启动源码 - finishBeanFactoryInitialization

finishBeanFactoryInitialization 源码解析 Instantiate all remaining (non-lazy-init) singletons. 初始化剩下非懒加载的实例对象 finishBeanFactoryInitialization方法第918行&#xff0c;beanFactory.preInstantiateSingletons(); preInstantiateSingletons方法&#xff…

AI工程化实践-如何构造一个AI应用

最近大模型非常火爆&#xff0c;基于大模型的应用也层出不穷&#xff0c;比较火的比如AutoGPT&#xff0c;当然也有很多垂直领域的应用。那么如何基于大模型的能力快速的建设一个垂直领域的AI应用呢&#xff0c;这就涉及到了AI工程化建设。在整个AI工程化建设的过程中&#xff…

vue3的响应式赋值中数组array,对象object,集合set的重新赋值怎么操作,问过Chatgpt的答案

vue3和ts结合开发的时候&#xff0c;总是会遇到引用数据类型的重新赋值的情况&#xff0c;但是在vue3中&#xff0c;又不能使用直接赋值的情况&#xff0c;因为会改变proxy的结构&#xff0c;导致响应式失败&#xff0c;那么该如何重新赋值响应式对象数据成为了一个技巧问题&am…

使用gpt的感受,结尾附注册使用方式

最近一直很火的chatgpt&#xff0c;我也去试了一下&#xff0c;感觉还是用的很舒服的。 优点 感觉舒服的地方就是可以联系上下文&#xff0c;不像传统的搜索引擎一样&#xff0c;找不到的话得重新组织语言去搜索&#xff0c;可以跟gpt学习英语&#xff0c;问编程问题&#xf…

GIT使用的问题及解决

随时遇见&#xff0c;随机解决&#xff0c;同步记录 ~ 文章目录 ① git commit 失败&#xff1a;Author identity unknown *** Please tell me who you are.② git clone&#xff0c;git pull 提示 Permission denied&#xff0c;找不到私钥文件③ 重启电脑后&#xff0c;使用 …

解决Microsoft Bing 支持 ChatGPT后加入等待队列出错问题

解决Microsoft Bing 支持 ChatGPT后加入候补名单出错问题 代理进入https://www.bing.com/new&#xff0c;正确界面如下图&#xff1a; 如果进入直接跳转下图界面&#xff0c;则需要清除与bing相关的cookie&#xff08;设置里清除&#xff0c;这样就能之间跳转到加入候补名单的…

反射和动态代理

目录 v20230514更新 Userjava反射本质 反射的核心 获取Class对象&#xff1a; 创建对象&#xff1a; 调用方法&#xff1a; 访问字段&#xff1a; 需要注意的是&#xff0c; 综上所述&#xff0c; Userjava动态代理本质 两个核心的类&#xff1a;Proxy和InvocationH…