赞
踩
一个巧合,又测到了新的区别,以下是关于python代码生成的测试效果。
这次的测试问题来源于**智谱AI开放平台**的介绍,正好有个python生成的效果说明,于是就在各大平台进行了异常演绎对比,那么让我们看一下对比的这些语言平台实现效果如何吧。
问题:用python画一个爱心
说明:这是一个简单的根据提问,大模型提供可实现的代码效果对比。用了这么久,大模型对算法类的实现,默认都会用python代码来展示,好用啊,也好实现啊。
直接将回答复制上来的话,排版就乱套了,那我还是直接截图吧,代码段单独写出来。
import turtle # 设置初始状态 turtle.speed(1) # 设置绘图速度为最快 turtle.bgcolor("black") # 设置背景颜色为黑色 turtle.pensize(2) # 设置画笔粗细 turtle.color("red", "pink") # 设置画笔颜色和填充颜色 turtle.begin_fill() # 开始填充颜色 # 绘制爱心形状 turtle.left(140) turtle.forward(180) turtle.circle(-100, 200) turtle.left(120) turtle.circle(-100, 200) turtle.forward(180) # 结束填充颜色 turtle.end_fill() # 隐藏画笔 turtle.hideturtle() # 等待用户关闭窗口 turtle.done()
这是一个动态绘制心形的效果,绘制的时候看着线条还不错,但绘制完咋就缺了一角?
整体来看,简单啊
import numpy as np
import matplotlib.pyplot as plt
t = np.arange(0, 2 * np.pi, 0.01)
x = 16 * np.sin(t) ** 3
y = 13 * np.cos(t) - 5 * np.cos(2 * t) - 2 * np.cos(3 * t) - np.cos(4 * t)
plt.plot(x, y, color='red')
plt.axis('equal')
plt.show()
原本以为平台有运行功能,能跑起来这个代码段,但实际操作好像报错了,那还是用编译器来实现吧。
编译器执行效果
import matplotlib.pyplot as plt
import numpy as np
def draw_heart():
t = np.linspace(0, 2*np.pi, 100)
x = 16 * np.sin(t)**3
y = 13 * np.cos(t) - 5 * np.cos(2*t) - 2 * np.cos(3*t) - np.cos(4*t)
plt.figure(figsize=(8, 8))
plt.axis('equal')
plt.plot(x, y, color='red')
plt.title('Heart Shape')
plt.show()
draw_heart()
复制很麻烦呀
import turtle # 设置背景颜色 turtle.bgcolor("white") # 创建turtle对象 t = turtle.Turtle() # 设置线宽和颜色 t.width(3) t.color("red") # 绘制爱心 t.begin_fill() t.penup() t.goto(-100, 0) t.pendown() for i in range(2): t.circle(100, 90) t.circle(-100, 90) t.end_fill() # 隐藏turtle t.hideturtle() # 完成绘制,程序不退出 turtle.done()
能不能告诉我这是什么?
import turtle def draw_heart(x, y, size): turtle.penup() turtle.goto(x, y) turtle.pendown() turtle.setheading(135) turtle.begin_fill() turtle.color("red", "red") turtle.forward(size) turtle.right(90) turtle.forward(size) turtle.right(90) turtle.forward(size) turtle.right(90) turtle.forward(size) turtle.end_fill() def main(): turtle.speed(1) draw_heart(0, 0, 100) turtle.hideturtle() turtle.done() if __name__ == "__main__": main()
这个心形也很特殊呀
import turtle # 设置初始位置 turtle.penup() turtle.left(50) turtle.forward(133) turtle.left(50) # 绘制爱心 turtle.pendown() turtle.begin_fill() turtle.fillcolor("red") # 设置填充颜色为红色 turtle.left(140) turtle.forward(180) turtle.circle(-90, 200) turtle.forward(180) turtle.left(140) turtle.end_fill() turtle.hideturtle() # 关闭窗口的监听事件 turtle.getcanvas().winfo_toplevel().protocol("WM_DELETE_WINDOW", turtle.bye) # 启动 turtle.mainloop()
这是啥? 茄子?
import turtle # 创建画布和画笔 screen = turtle.Screen() heart = turtle.Turtle() # 爱心绘制函数 def draw_heart(): heart.speed(1) # 设置画笔速度 for i in range(200): heart.forward(i) heart.left(1) heart.forward(-i) heart.right(1) # 绘制爱心 draw_heart() # 隐藏画笔箭头 heart.hideturtle() # 保持窗口打开直到用户关闭 screen.mainloop()
这个打印机太慢了,等你画完,我都饿死了。不管你是啥了,反正不像心,拜拜了
惊讶于你思维导图的效果。
import turtle # 创建一个turtle对象 t = turtle.Turtle() t.speed(0) # 设置turtle移动速度为最快 # 定义绘制爱心的函数 def draw_heart(size): t.penup() t.goto(-size, size * 1.732) # 上左顶点 t.pendown() t.begin_fill() for _ in range(3): t.forward(size) t.left(140) t.forward(size) t.left(260) t.end_fill() # 绘制爱心 draw_heart(100) # 关闭turtle窗口并等待用户关闭 turtle.done()
奇葩的五角星,唉。
import numpy as np
import matplotlib.pyplot as plt
# 定义参数
num_points = 1000 # 点的数量
theta = np.linspace(0, 2 * np.pi, num_points) # 生成一组角度值
# 定义心形的参数方程
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)
# 绘制心形
plt.figure(figsize=(6, 6))
plt.plot(x, y, 'r') # 'r' 表示红色
plt.title('Heart Shape') # 图形标题
plt.axis('equal') # 确保x和y轴的比例相同,使心形不会被压扁
plt.axis('off') # 关闭坐标轴
plt.show()
import matplotlib.pyplot as plt
import numpy as np
# Setting the parameters for the heart shape
t = np.linspace(0, 2 * np.pi, 100)
x = 16 * np.sin(t)**3
y = 13 * np.cos(t) - 5 * np.cos(2*t) - 2 * np.cos(3*t) - np.cos(4*t)
# Plotting the heart shape
plt.figure(figsize=(6, 6))
plt.plot(x, y, color='red')
plt.title('爱心')
plt.axis('equal')
plt.show()
如果用它提供的代码在本地pycharm编译器上运行,还是有点问题,就是标题的文字显示以及坐标轴的负号显示问题,所以还需要修改一下,但在人家平台上完全没问题。
那么,我加了以下代码来完善。
# 额外增加
# 画图时plt.title()默认是显示英文,如果我们设置标题为中文,会无法显示
plt.rcParams['font.sans-serif']=['SimHei'] # 显示中文用
plt.rcParams['axes.unicode_minus'] = False
##
首先从实现上来说,能完整绘制出心形的有讯飞星火、通义千问2.5、商量和智谱清言,其他几个平台的就不说了,连个心形都画不出来或者画不完整,没得比。
讯飞星火的设计还是不错的,方便复制,还打算在平台运行代码效果,只是后者还没实现,要加油。
智谱清言在这方面做的很好,平台可以直接实现编译效果图,方便取用
商量缺少的事复制代码的快捷方式,如果量大了很难弄
通义千问的中规中矩也挺不错。
从上面几个大模型的回答,从主观意识上对比如下:
模型名称 | 回答内容 |
---|---|
文心一言 | 代码部分支持快捷复制,动态绘制,Pycharm执行完成后图形缺失 |
讯飞星火 | 代码部分支持快捷复制和运行,但平台中运行不起来,Pycharm执行直接绘制出心形画面 |
通义千问2.5 | 代码部分支持快捷复制,Pycharm执行直接绘制出心形画面 |
豆包 | 特立独行的语言模型 |
360智脑 | 复制代码不方便,实现结果异形,完全不知道在画什么 |
百小应 | 代码部分支持快捷复制,心形变菱形了,是理解问题么? |
腾讯元宝 | 代码部分支持快捷复制,心形变茄子了,是理解问题么? |
Kimi | 代码部分支持快捷复制,打印机启动,完全没心 |
C知道 | 代码部分支持快捷复制,心形变五角星了,是理解问题么? |
商量 | 复制代码不方便,Pycharm执行直接绘制出心形画面 |
智谱清言 | 代码部分支持快捷复制,可以直接在平台实现效果,复制代码到本地实现可能缺少对应配置,需要调整,整体还是不错的 |
对于我想要的效果来说,当然是看到智谱清言网站的推荐才做的对比,倾向于它是毫无疑问的,其次就是讯飞星火了。 就到这吧,饿了,收尾撤退。
加油~~~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。