用Python的turtle和matplotlib画出圆满和爱心

news2025/1/17 23:23:18

马上就要到六一儿童节了,小朋友很喜欢画画,这里就用Pyhton来画一些简单形状。
首先是圆形,圆形的寓意是圆满、完美、团圆、优胜和团结。圆形在形状上是一个平面中点到定点距离相等的图形,象征着圆满和完美,寓意着无所不容、和谐圆满。圆形在古代文化中象征着宇宙万物的状态,是宇宙意识的表现,代表着无极、圆满、饱满、和谐和神圣等意义。圆形也是中华民族传统上的吉祥图案,象征着团结、优胜、胜利和美好。此外,圆形还代表着团结和凝聚力,鼓励人们为了共同的目标而团结一致,齐心协力克服困难。圆形的寓意非常丰富和深刻,被广泛运用于建筑、文化、艺术、生活等多个领域中,代表着人们的追求和梦想。
下面我们用Python画个圆形:

用turtle画圆形


import turtle

# 设置画笔颜色和粗细
turtle.pencolor("black")
turtle.pensize(5)

# 绘制一个半径为100的圆形
turtle.circle(100)

# 隐藏画笔并保持窗口不关闭
turtle.hideturtle()
turtle.done()



Turtle库来绘制一个半径为100的圆形。
1

用matplotlib画圆形

import matplotlib.pyplot as plt
import numpy as np

# 创建一个空白的图形对象  
fig, ax = plt.subplots()

# 定义圆形的中心和半径  
center = (0, 0)
radius = 1

# 画圆形  
theta = np.linspace(0, 2 * np.pi, 100)
x = center[0] + radius * np.cos(theta)
y = center[1] + radius * np.sin(theta)
ax.plot(x, y, color='r')

# 显示图形  
plt.show()

首先创建一个空白图形对象,然后定义圆形的中心和半径。接着,我们使用np.linspace函数生成一组等间距的角度值,然后计算出对应的横坐标和纵坐标,最后使用ax.plot函数将圆形画出来。最后,我们调用plt.show函数来显示图形。
1

经常见小朋友们摆pose,用比心来做手势,用手比一个心形的动作来表达对粉丝或是朋友的友好表达方式,还可以用来表达喜欢、爱你、感谢等意思。该手势由于易懂易学,容易上手,经常出现在各大直播电视节目而被广泛应用。下面我们就用Python画个爱心。

用turtle画爱心

from turtle import *


# 定义函数为值love,目的是绘制爱心上方的曲线
def love():
    for i in range(200):  # 重复200次下面的代码
        right(1)
        forward(1)  # 画笔向前1像素


# 为爱心设置样式
pensize(2)  # 调整画笔粗细为2像素
speed(10)  # 调节画笔速度10
color('black', 'red')  # 画笔颜色及填充颜色
begin_fill()  # 开始填充
left(140)
forward(111.65)
love()  # 调用函数
left(120)
love()
forward(111.65)  # 调用函数
end_fill()  # 结束填充
hideturtle()  # 隐藏画笔
done()  # 结束运行,常用于python编辑器,idea等中

1

另一种方式:

import turtle
turtle.color('red', 'pink')
turtle.pensize(2)
turtle.pendown()
turtle.setheading(150)
turtle.begin_fill()
turtle.fd(50)
turtle.circle(50 * -3.745, 45)
turtle.circle(50 * -1.431, 165)
turtle.left(120)
turtle.circle(50 * -1.431, 165)
turtle.circle(50 * -3.745, 45)
turtle.fd(50)
turtle.end_fill()

1

matplotlib画心

import numpy as np
from matplotlib import pyplot as plt

# Creating equally spaced 100 data in range 0 to 2*pi
theta = np.linspace(0, 2 * np.pi, 100)

# Generating x and y data
x = 16 * ( np.sin(theta) ** 3 )
y = 13 * np.cos(theta) - 5* np.cos(2*theta) - 2 * np.cos(3*theta) - np.cos(4*theta)

# Plotting
plt.plot(x, y, color='red')

plt.title("Heart Shape")
plt.show()

1
这个心形用了两个公式。

import numpy as np
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

x = np.linspace(-2, 2, 1000)
y1 = np.sqrt(1 - (abs(x) - 1) ** 2)
y2 = -3 * np.sqrt(1 - (abs(x) / 2) ** 0.5)

plt.fill_between(x, y1, color='red')
plt.fill_between(x, y2, color='red')

# plt.text(0, -1.0, 'Heart', fontsize=24, color='black',
# horizontalalignment='center')

plt.show()

1

3D爱心

'''
=================================
3D heart shape in matplotlib
=================================
Demonstrates how to plot a 3D function in cartesian coordinates.
Uses the marching cubes algorithm in scikit-image to obtain a isosurface.
Example contributed by CAChemE.org
Adapted from: http://www.walkingrandomly.com/?p=2326
'''

from mpl_toolkits.mplot3d import Axes3D
from matplotlib import pyplot as plt
import numpy as np
from skimage import measure


# Set up mesh
n = 100

x = np.linspace(-3,3,n)
y = np.linspace(-3,3,n)
z = np.linspace(-3,3,n)
X, Y, Z =  np.meshgrid(x, y, z)

# Create cardioid function
def f_heart(x,y,z):
    F = 320 * ((-x**2 * z**3 -9*y**2 * z**3/80) +
               (x**2 + 9*y**2/4 + z**2-1)**3)
    return F

# Obtain value to at every point in mesh
vol = f_heart(X,Y,Z)

# Extract a 2D surface mesh from a 3D volume (F=0)
verts, faces, normals, values = measure.marching_cubes_lewiner(vol, 0,  spacing=(0.1, 0.1, 0.1))


# Create a 3D figure
fig = plt.figure(figsize=(12,8))
ax = fig.add_subplot(111, projection='3d')

# Plot the surface
ax.plot_trisurf(verts[:, 0], verts[:,1], faces, verts[:, 2],
                cmap='Spectral', lw=1)

# Change the angle of view and title
ax.view_init(15, -15)

# ax.set_title(u"Made with ❤ (and Python)", fontsize=15) # if you have Python 3
ax.set_title("Made with <3 (and Python)", fontsize=15)

# Show me some love ^^
plt.show()

在这里插入图片描述
让我们一起追寻童年的记忆,感悟童心的纯真,拥抱童年的无邪。祝福孩子们健康成长,快乐相伴,画出更加美好的未来!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:用什么软件编写Python文件?

用什么软件编写Python文件&#xff1f; Python 是一种流行的编程语言&#xff0c;许多人使用它来编写软件应用程序、数据分析工具以及自动化脚本。但是对于初学者来说&#xff0c;可能会感到迷茫&#xff0c;不知道应该用什么软件来编写并运行Python文件。本文将介绍几种非常流…

实战Windows Chrome 0day

遇到挑战跟挫折的时侯&#xff0c;我有一个坚定的信念&#xff0c;我可以断气&#xff0c;但绝不能放弃 漏洞复现 实战Windows Chrome 0day需要满足的条件 第一点是关闭沙箱环境 第一种方式 设置Chrome浏览器的快捷方式 在快捷方式上增加 -no-sandbox 第二种方式 命令行命令…

Vue-CLI + Vue3 + Vue-Router4 实现tabbar小案例

Vue-CLI Vue3 Vue-Router4 实现tabbar小案例 tabbar导航栏案例&#xff1a;该案例实现了基础的组件封装&#xff0c;编程式路由&#xff0c;以及插槽的使用&#xff0c;对于我们日常组件化开发有着很大的启示作用&#xff0c;主要效果是点击下方的导航栏链接&#xff0c;上方…

【owt】addon.MediaStream,erizo::MediaStream 还有addon.MediaXXX,erizo::MediaXXX

9. MediaStream 和erizo::MediaStream 类的继承关系 erizo::MediaStream source/agent/webrtc/rtcConn/erizo/src/erizo/MediaStream.h source/agent/webrtc/rtcConn/erizo/src/erizo/MediaDefinitions.h erizo::MediaSource source/agent/webrtc/rtcConn/erizo/src/erizo/…

皮卡丘RCE

1.RCE漏洞描述 RCE漏洞&#xff0c;可以让攻击者直接向后台服务器远程注入操作系统命令或者代码&#xff0c;从而控制后台系统。 远程系统命令执行 一般出现这种漏洞&#xff0c;是因为应用系统从设计上需要给用户提供指定的远程命令操作的接口。比如我们常见的路由器、防火墙…

XSS笔记(简单了解的)

1.什么是XSS&#xff1f; XSS (Cross Site Scripting)&#xff0c;即跨站脚本攻击&#xff0c;是一种常见于 Web 应用中的计算机安全漏洞。恶意攻击者往 Web 页面里嵌入恶意的客户端脚本&#xff0c;当用户浏览此网页时&#xff0c;脚本就会在用户的浏览器上执行&#xff0c;进…

chatgpt赋能python:Python可以有多个同名函数吗?

Python 可以有多个同名函数吗&#xff1f; Python作为一门高级编程语言&#xff0c;其灵活性和易用性备受开发人员的青睐。在Python中&#xff0c;函数是编程语言的核心&#xff0c;任何有经验的Python工程师都会知道Python的函数允许使用相同的名称来进行定义。那么问题来了&…

一文搞懂编程界中最基础最常见【必知必会】的十一个算法,再也别说你只是听说过【建议收藏+关注】

文章目录 常见算法分类算法复杂度算法描述与实现交换类排序冒泡排序快速排序 插⼊类排序直接插入排序Shell排序 选择类排序简单选择排序&#xff08;⼜称直接选择排序&#xff09;堆排序 归并排序二路归并排序多路排序 线性时间非比较类排序计数排序基数排序桶排序 常见算法分类…

1. 爬虫及爬虫的步骤

1. 爬虫及爬虫的步骤 文章目录 1. 爬虫及爬虫的步骤1. 爬虫是什么&#xff1f;2. 爬虫的作用3. 爬虫步骤3.1 获取网页3.2 解析网页3.3 存储数据 4. 总结 1. 爬虫是什么&#xff1f; 爬虫就是写一段代码让计算机模仿人类自动访问网站。 2. 爬虫的作用 爬虫可以代替人们自动地…

Golang每日一练(leetDay0085) 2的幂、数字 1 的个数

目录 231. 2的幂 Power of Two &#x1f31f; 233. 数字 1 的个数 Number of Digit One &#x1f31f;&#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Rust每日一练 专栏 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java…

深度学习总结——用自己的数据集微调CLIP

CLIP概述 CLIP&#xff08;Contrastive Language-Image Pretraining&#xff09;是由OpenAI开发的一种深度学习模型&#xff0c;用于将图像和自然语言文本进行联合编码。它采用了多模态学习的方法&#xff0c;使得模型能够理解图像和文本之间的语义关系。 它的核心思想是将图…

皮卡丘SQL注入汇总

1.Sql Inject(SQL注入)概述 SQL注入漏洞主要形成的原因是在数据交互中&#xff0c;前端的数据传入到后台处理时&#xff0c;没有做严格的判断&#xff0c;导致其传入的“数据”拼接到SQL语句中后&#xff0c;被当作SQL语句的一部分执行。 从而导致数据库受损&#xff08;被脱裤…

循环控制语句

文章目录 1.break——跳出循环1.1作用 2.continue——控制循环2.1作用 3.猜数字4.while语句4.1while语句的结构4.2算1-10求和&#xff1a;4.3使用while方式批量添加5个用户给这五个用户添加密码&#xff1a; 5.until语句6.拓展6.1 购物6.2shell 计算器实现加减乘除和取余6.3打印…

chatgpt赋能python:Python反转输出正整数-让计算更简单

Python反转输出正整数-让计算更简单 Python是一种高级编程语言&#xff0c;除了可以完成各种任务&#xff0c;还可以反转输出正整数。在本篇SEO文章中&#xff0c;我将介绍如何使用Python编程语言反转输出正整数&#xff0c;并且展现了这个方法是如何简化计算。 什么是Python…

chatgpt赋能python:Python列表指定元素的取出方法

Python列表指定元素的取出方法 在Python编程中&#xff0c;经常需要取出列表中的指定元素。本文将介绍几种常用的取出列表指定元素的方法。 1. 使用索引 列表中的元素可以通过索引来进行访问和修改&#xff0c;索引从0开始。下面的示例展示了如何使用索引来取出列表中的指定…

六、docker安装ngxin部署若以前端

1.第一次安装&#xff0c;不进行挂载数据卷&#xff0c; docker run \ -p 8060:80 \ --name nginx \ --privilegedtrue \ --restartalways \ -d nginx:1.17.82. 将配置信息复制到宿主机本地 # 将容器nginx.conf文件复制到宿主机 docker cp nginx:/etc/nginx/nginx.conf /data…

总投资300亿,南山前海南山村旧改城市更新

南山村 项目位于南山区南山街道南山村旧村片区&#xff0c;东临南新路&#xff0c;南临东滨路&#xff0c;西临前海路&#xff0c;北临南园村。地处联系前海、后海两大中心区的空间发展轴带上&#xff0c;区位交通条件优越。位于9号线延长线前海路站附近&#xff0c;也因地处大…

背包问题总结篇

背包问题总结篇 关于这几种常见的背包&#xff0c;其关系如下&#xff1a; 通过这个图&#xff0c;可以很清晰分清这几种常见背包之间的关系。 在讲解背包问题的时候&#xff0c;我们都是按照如下五部来逐步分析&#xff0c;相信大家也体会到&#xff0c;把这五部都搞透了&…

【C++刷题】【动态规划篇】(一)

动态规划篇&#xff08;一&#xff09; 一、1137. 第 N 个泰波那契数&#xff08;easy&#xff09;二、三步问题&#xff08;easy&#xff09;三、使用最小花费爬楼梯&#xff08;easy&#xff09;四、解码方法&#xff08;medium&#xff09;五、不同路径&#xff08;medium&a…

如何利用地面控制点实现倾斜摄影三维模型数据的几何坐标变换和纠正?

如何利用地面控制点实现倾斜摄影三维模型数据的几何坐标变换和纠正&#xff1f; 倾斜摄影是一种在空中拍摄地表物体的技术&#xff0c;可以获得高分辨率、高精度的三维模型数据&#xff0c;广泛应用于城市规划、建筑设计、土地管理等领域。然而&#xff0c;由于航拍时无法避免姿…