-
运用Python的turtle库绘制等边三角形
2019-07-20 15:07:23题目重点:运算turtle库里面的turtle.fd()和turtle.seth()函数,绘制等边三角形。 思路:fd控制长度,而seth则为方向角度(等边三角形内角和为180°且每个角均为60°且三条边相等,转的角度为:0°,120°,240°...我最先考虑以最简洁的方式来解决这个问题,也就是以最少代码来完成这个作业并且还要正确。
题目重点:运算turtle库里面的turtle.fd()和turtle.seth()函数,绘制等边三角形。
思路:fd控制长度,而seth则为方向角度(等边三角形内角和为180°且每个角均为60°且三条边相等,转的角度为:0°,120°,240°,长度就任意设一个值)初次函数设计:
__author__ = 'Don' import turtle turtle.seth(0) turtle.fd(100) turtle.seth(120) turtle.fd(100) turtle.seth(240) turtle.fd(100) turtle.done() #让最后图形暂停方便截图最后可以省略因题目效果已达到
这时候我发现了个问题这个函数太冗余了,相同的代码重复了三遍。这时候我就考虑到了简化这个代码,通过for 循环。
二次订正:
__author__ = 'Don' import turtle for i in range(3): turtle.fd(100) turtle.seth((1+i)*120) turtle.done()
我定义一个i(increment 增值) 循环3次,这样我就可以把turtle.fd(100)一模一样的代码简化了,然后就是seth()函数的问题 i我给他设计了一个表达式((1+i)*120) 这样旋转的角度就可以满足三次i变换而更改的了。 但是我突然发现了一件秘密就是这次订正有个特别严重的问题,就是这个turtle的箭头结束方向错了,我开始想怎么设计 我考虑到这个seth()函数其实不是转三次的而是两次就够了,因为fd(forward)一开始就是默认0°向右直走的,所以一开始 设计seth()函数角度i为seth(i*120) 就更简介了且方向是正确的。
三次订正(最终):
import turtle
for i in range(3):
turtle.seth(i*120)
turtle.fd(100) -
如何用Python中的turtle模型绘制内含叠加三角形的等边三角形
2019-06-24 23:39:33用Python中的turtle模型绘制内含叠加三角形的等边三角形 效果如下: 代码如下,快动手试试吧: #导入turtle模块 from turtle import * #导入math模块 from math import * #定义函数 def triangle1(L,n):...用Python中的turtle模型绘制内含叠加三角形的等边三角形
效果如下:
代码如下,快动手试试吧:#导入turtle模块 from turtle import * #导入math模块 from math import * #定义函数 def triangle1(L,n): """ :param L: 外框等边三角形边长 :type L: int :param n: 细分的三角形数量 :type n: int """ for i in range(n): left(60) forward(L*((n-i)/(n))) right(120) forward(L/n) x,y = position() # 记录指针坐标 while y>0.1: # 如果指针到达地平面,则退出循环 right(120) forward(L/n) left(120) forward(L/n) x,y = position() left(60) left(180) forward(L) if __name__ == "__main__": # 设置绘图速度为最快 speed(0) # 隐藏画笔 ht() triangle1(150,10)
-
用python的turtle画等边三角形讲解_通过Python turtle绘制等边三角形谈编程思维和逻辑...
2021-02-12 09:44:06相信三角形对于绝大数人来说,是再熟悉不过的一个几何图形了,并且在现实生活和工作中也经常遇见...如果用画图工具的话,也很容易绘制出,但是我们现在讨论的是如何通过代码编程实现绘制等边三角形,本次案例采用pyt...相信三角形对于绝大数人来说,是再熟悉不过的一个几何图形了,并且在现实生活和工作中也经常遇见,如果要画的话,相信很多人也会说,简单的很啊,画三条相等的线段,每两个线段的夹角为60度就可以了啊,也许我们借助几何作图工具会很快的很容易的画出来,但是如果我们要让计算机帮我们绘制的话,该如何绘制呢?如果用画图工具的话,也很容易绘制出,但是我们现在讨论的是如何通过代码编程实现绘制等边三角形,本次案例采用python中的一个非常著名的库-turtle(海龟绘图)来实现。
首先我们要明确任务目标,目标明确、没有歧义的话,我们才能准确的实现。
(一)任务目标。
绘制一个边长为100像素的等边三角形。
(二)任务分析
(1)绘制图形时,首先要确定图形的位置,有绘画基础的朋友都应该清楚,就是要把三角形画在绘画纸或画布的具体位置,确定好其中一个顶点的位置即可。
(2)确定好位置后,下一步需要确定此顶点的其中一条线段的方向。
(3)确定好位置和方向后,就可以开始绘制第一条边了。
(4)绘制完第一条边后,再继续绘制第二条边时,根据几何知识,需要先左转向120度。
(5)第三条边和第二条边类似,这样就可以把等边三角形绘制完成。
(三)编程实现。
turtle-海龟绘图是python中的一个非常有名的绘制图形的库,turtle会初始化为一个窗口,窗口里生成一个画布,并且把画布按照直角坐标系分成了四个部分,中心点的坐标为(0,0),画笔默认方向为正向右,我们把起始顶点放到中心点,第一条边方向为默认方向。
代码如下:
import turtle as t
#第一条边
t.fd(100)
#第二条边
t.lt(120)
t.fd(100)
#第三条边
t.lt(120)
t.fd(100)
t.done()
效果图:
(四)总结
是不是感觉代码非常简单明了,其实编程就是在分析清楚目标或任务的前提下,通过逻辑实现整个过程,然后把逻辑转换成代码实现,在实现过程中,需要反复调试代码,直到结果符合目标,以上就是小编通过一个小小的案例给出了对于编程的一个小小的心的体会,有问题或建议可以随时关注小编进行沟通交流,欢迎大家的关注和骚扰。
-
谢尔宾斯基三角形c++_谢尔宾斯基三角形:python-turtle可视化实现
2020-12-02 03:21:141 谢尔宾斯基三角形===============1.1 谢尔宾斯基三角形(英语:Sierpinski triangle)是一种分形,由波兰数学家谢尔宾斯基在1915...2 python3.8-turtle黑白版===================2.1 效果图12.2 代码1#代码来源:修改...1 谢尔宾斯基三角形
===============
1.1 谢尔宾斯基三角形(英语:Sierpinski triangle)是一种分形,由波兰数学家谢尔宾斯基在1915年提出。
1.2 瓦茨瓦夫·弗朗西斯克·谢尔宾斯基,1882年3月14日-1969年10月21日,波兰数学家。
2 python3.8-turtle黑白版
===================
2.1 效果图1
2.2 代码1
#代码来源:修改,增加,注释#https://fishc.com.cn/forum.php?mod=viewthread&ordertype=2&tid=151507import turtle#定义谢尔宾斯基三角形函数def Sierpinski(size,times,total_angle): #times为0,就是外围大三角形 if times == 0: turtle.fd(size) else: for angle in [0,120,-120,-120,120]: total_angle += angle turtle.right(angle) total_angle = total_angle%180 if total_angle == 0: Sierpinski(size/2,times-1,total_angle) else: turtle.fd(size/2)#定义主函数def main(): #窗口大小设置 turtle.setup(800,800) #提笔 turtle.penup() #去到这个坐标 turtle.goto(-300, -300) #落笔 turtle.pendown() #笔头大小 turtle.pensize(2) #转角,画外围三角形,先60°,再120° for angle in [60,-120]: turtle.left(angle) turtle.fd(size) #再转角120° turtle.right(120) total_angle=0 Sierpinski(size,times,total_angle) #隐藏画笔 turtle.hideturtle() turtle.done()size = 600#层数,推荐5#times = 5times=int(input('请你输入层数0-5,推荐≤5:'))#主函数走起main()
2.3 效果图2
2.4 代码2
""" 功能:绘制谢尔宾斯基三角形 环境:python3.7 日期:2019/1/14 21:49 作者:指尖魔法师 版本:1.0 #https://blog.csdn.net/veray/article/details/86531715"""import turtle as t def sanjiaoxing(san): """ 传入三个点坐标,绘制三角形 """ t.penup() t.goto(san[0]) t.pendown() t.goto(san[1]) t.goto(san[2]) t.goto(san[0]) def get_mid(a, b): """ 计算返回2个点的中间点坐标 """ x = (a[0] + b[0]) / 2 y = (a[1] + b[1]) / 2 return [x, y] def draw_san(size, i): """ 绘制谢尔宾斯基三角形函数 :param size: 三个点坐标列表 :param i: 递归次数 """ # 绘制三角形 sanjiaoxing(size) if i > 0: # 绘制左边小三角形 size2 = [size[0], get_mid(size[0], size[1]), get_mid(size[0], size[2])] draw_san(size2, i - 1) # 绘制上边的小三角形 size3 = [get_mid(size[0], size[2]), get_mid(size[1], size[2]), size[2]] draw_san(size3, i - 1) # 绘制右边的小三角形 size4 = [get_mid(size[0], size[1]), size[1], get_mid(size[1], size[2])] draw_san(size4, i - 1) def main(): """ 主函数 """ # 打印图形标题 t.penup() t.left(90) t.forward(350) t.pendown() t.write("谢尔宾斯基三角形", False, align="center", font=("宋体", 20, "normal")) t.speed(5) # 初始三角形坐标 points = [[-200, 0], [200, 0], [0, 300]] # 递归5次 count = 5 # 调用绘制谢尔宾斯基三角形函数 draw_san(points, count) t.ht() #add t.exitonclick() if __name__ == '__main__': main()
3 python3.8-turtle彩色版
===================
3.1 字典法效果图3
3.2 代码3
#代码来源#https://blog.csdn.net/qq_42907161/article/details/108228487?utm_medium=distribute.pc_relevant.none-task-blog-baidulandingword-6&spm=1001.2101.3001.4242#字典法import turtlet = turtle.Turtle()points = {'left':(-200, -100), 'top':(0, 200), 'right':(200, -100)}#画三角形和填充颜色函数def drawTriangle(points, color): t.fillcolor(color) t.penup() t.goto(points['top']) t.pendown() t.begin_fill() t.goto(points['left']) t.goto(points['right']) t.goto(points['top']) t.end_fill()#取中点函数def getMid(p1, p2): return ((p1[0] + p2[0]) / 2, (p1[1] + p2[1]) / 2)#画谢尔宾斯基三角形函数def sierpinski(degree, points): colormap = ['blue', 'red', 'green', 'yellow', 'orange', 'gray'] if degree > 0: # 先画(挖掉)三角形 drawTriangle( {'left':getMid(points['left'], points['top']), 'right':getMid(points['right'], points['top']), 'top':getMid(points['right'], points['left']) },colormap[degree] ) # 再分别递归新生成的三个三角形 sierpinski(degree - 1, {'left':getMid(points['left'], points['top']), 'top':points['top'], 'right':getMid(points['top'], points['right'])}) sierpinski(degree - 1, {'left':points['left'], 'top':getMid(points['left'], points['top']), 'right':getMid(points['left'], points['right'])}) sierpinski(degree - 1, {'left':getMid(points['left'], points['right']), 'top':getMid(points['top'], points['right']), 'right':points['right']})drawTriangle(points, 'white')#层数5个sierpinski(5, points)t.ht() # 最后将海龟隐藏起来turtle.done()
3.3 效果图4
3.4 代码4
# 谢尔宾斯基三角形# By BigShuang# https://github.com/BigShuang/recursion-with-turtleimport mathimport turtle# 颜色LineColor="black"FillColors=[ '#CAE1FF', '#FFEFDB', '#8470FF', '#FF6347', '#FFDEAD', '#C1FFC1']# 最小绘制长度-三角形最小边长Base=10# 三角形边长TriSize=250# 绘制速度MPS=10# 初始化Turtle对象t = turtle.Turtle()t.speed(MPS)t.hideturtle()# 递归函数-画下一级别的三角形-内部更小的def draw_nextone(*triangle,**kwargs): # 如果三角形边长大于最小绘制长度,退出递归 if get_edge(triangle)
4 一道中考题
==========
4.1 图:截图来自网络,仅供学习,如果侵权请联系,定删!
4.2 解题:
图1:0层===面积是1
图2: 1层===面积是3/4=1×3/4
图3:2层===面积是9/16=3/4×3/4
图4: 3层===面积是27/64=9/16×3/4
图5: 4层===面积是81/256=27/64×3/4
自己整理出来,仅供学习。
-
python使用turtle画一个三角形、正方形(矩形或四边形)
2020-03-14 20:32:21今天我们用python使用turtle库画一个三角形、一个正方形。 1.画一个三角形。 实现方法是先画一个直线,然后旋转120度,然后继续画直线。这样反复画三条直线后,就形成一个等边三角形。先看效果: 代码如下: ... -
使用python画等边三角形的程序-运用Python的turtle库绘制等边三角形
2020-11-01 12:12:46题目重点:运算turtle库里面的turtle.fd()和turtle.seth()函数,绘制等边三角形。思路:fd控制长度,而seth则为方向角度(等边三角形内角和为180°且每个角均为60°且三条边相等,转的角度为:0°,120°,240°,... -
python的turtle的等边等角三角形的经典简洁画法
2019-10-31 19:54:081.等边等角三角形的特点: 三条边长相等,三个内角相等且等于60°(因为内角和等于60°×3) 附注:正多边形内角和定理...from turtle import* #从turtle中导出所有模块,代码编写简单。 4.方法一:也就是正常思路:... -
python绘制等边三角形的代码_python绘制等边三角形
2020-11-20 19:37:01原博文2019-04-28 16:07 −定义一个函数,参数为三角形的边长和颜色,并调用该函数绘制两个边长颜色不同的等边三角形 1 def draw(l,color): 2 import turtle 3 turtle.setup(900,600,200,200) 4 turtle.penup() # 笔抬... -
通过Python turtle绘制等边三角形谈编程思维和逻辑
2020-03-08 22:44:26相信三角形对于绝大数人来说,是再熟悉不过的一个几何图形了,并且在现实生活和工作中也经常遇见...如果用画图工具的话,也很容易绘制出,但是我们现在讨论的是如何通过代码编程实现绘制等边三角形,本次案例采用pyt... -
使用python画等边三角形的程序-python叠加等边三角形的代码编写方法
2020-11-01 12:37:17python 叠加等边三角形的绘制的实现python语言程序设计基础 习题2.5import turtledef drawTriangle(num,len,flag):#flag用来调整画三角形的方向flag*=-1len/=2if(num==1):if(flag==1):turtle.left(60)turtle.fd(len)... -
python使用turtle库画正方形、矩形、三角形、多边形、同切圆和五角星等简单图形
2020-02-08 02:34:35以下分享一些简单图形的绘制代码 绘制边长为100的正方形, import turtle d = 0 for i in range(4): #图形边数 turtle.fd(200) #边长 d = d+90 #旋转角度 turtle.seth(d) 绘制等边三角形 import turtle d.... -
python turtle setheading_Python turtle.right与turtle.setheading的区别
2021-02-09 07:29:20一、概念turtle.right与turtle.left用法一致,我们以turtle.right为例...二、举例从概念上并不能准确的得知他们有怎样的区别,那我们以三角形为例,看看他们究竟有什么不同。 运行此代码。 将turtle.setheading换成... -
python中turtle中setx_Python turtle.right与turtle.setheading的区别
2020-12-08 14:37:48一、概念turtle.right与turtle.left用法一致,我们以turtle.right为例...二、举例从概念上并不能准确的得知他们有怎样的区别,那我们以三角形为例,看看他们究竟有什么不同。 运行此代码。 将turtle.setheading换成... -
python-turtle库-01
2019-07-09 15:14:28steps=3,相当于绘制三角形 steps=4,相当于绘制四边形 如果不设置steps,相当于绘制边界光滑的圆圈 效果 turtle库颜色与字体绘制方法 例子增强 将前一步代码进行增强 代码说明... -
用Python画等边三角形
2021-03-20 20:29:54用Python画等边三角形 ...代码: import turtle length = input("请输入三角形边长:") for i in range(3): turtle.fd(int(length)) turtle.left(120) turtle.done() 以上就是利用Python画的等边三角形了 -
python中的画布背景设置_教你用python画图—Turtle详细教程
2021-01-04 12:20:11Turtle模块绝对是吸引非专业代码开发者人员学习python入门的好工具通过turtle几行代码的执行软件就会画出漂亮的图形,美观而且有成就感,这样一下子对python编程就产生了兴趣。这些漂亮的图形如三角形、五角星、机器... -
什么,原来turtle画笔能这样用!
2021-01-06 15:40:51明天背靠背考概率论,但是过了明天就能够有时间写代码了,今天还是抽出了半个小时改了点贪吃蛇的代码,途中遇到点小困难,特地记录了一下,等明天肝完概率论,希望能将snake游戏全部代码弄出来 原来三角形是这么画... -
python递归三角形_Python中三角形收缩的递归方法
2020-12-19 01:01:30首先,很好的尝试。你真的很亲密。这看起来是个有趣的项目。:)我已经修复了您的代码,并将...在import turtledef drawTriangle(size):turtle.left(30)turtle.forward(size)turtle.right(120)turtle.forward(size)tu... -
使用Python的turtle库实现六角形以及正方形螺旋线的绘制
2019-09-24 19:11:251.六角形的绘制 思路:一个六角形可以看作是两个等边三角形具有共同的中心且垂线互成60°角。...import turtleturtle.setup(650,350,200,200)turtle.penup()turtle.pensize(1)turtle.pencolor("red")turtle.fd(... -
09 turtle库 | 你住的城市下雨了
2019-06-18 09:05:40代码: import turtle import math # 初始方向为右 # 雨伞 x,y为初始坐标 a为等腰直角三角形的直角边长 c为斜边长 伞柄为1.5a def paint_umbrella(x, y, a): # 移动到初始位置 turtle.penup() turtle.goto(x... -
绘制三角形金字塔
2020-06-22 10:40:52将例1中的代码转换为draw_triangle函数,并绘制三角形金字塔,如下所示: 题解:分行绘制,绘制完一行后,将turtle的位置移回原位置 参考代码: from turtle import * from math import * def draw_triangle... -
1.3 绘制等边三角形
2021-03-11 19:18:11使用turtle库中的turtle.fd()函数和turtle.seth()函数绘制一个等边三角形。 程序代码_写法1: import turtle as t t.setup(600,600) t.pencolor("red") t.pensize(5) t.left(60) t.fd(250) for x in range(2): t.... -
谢尔宾斯基三角形c++_Python数据结构与算法——谢尔宾斯基三角形(递归可视化)...
2020-12-04 12:30:38喜欢请点关注 代码见Github:https://github.com/YZYloveTDQ/turtle-application谢尔宾斯基三角形谢尔宾斯基(sierpinskr)三角形也是一种分形构造,平面称之为谢尔宾斯基三角形,立体的叫做谢尔宾斯基金字塔... -
python填充三角形颜色怎么输入_用Python填充三角形(海龟)
2021-01-17 17:42:03我可能会得到很多不喜欢的东西,但我真的需要知道这一点。...在当前代码:import turtle, mathdef theme():turtle.speed(10)column_1()reset_column()column_2()reset_column()column_1()def reset_column(... -
python绘制六角星外廓_使用Python的turtle库实现六角形以及正方形螺旋线的绘制
2021-02-04 09:23:501.六角形的绘制思路:一个六角形可以看作是两个等边三角形具有共同的中心且...代码如下:import turtleturtle.setup(650,350,200,200)turtle.penup()turtle.pensize(1)turtle.pencolor("red")turtle.fd(100)turtle.... -
python编写代码运用递归画图形_python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)...
2021-03-06 21:03:33插图工具使用Python内置的turtle模块,为什么叫这个turtle乌龟这个名字呢,可以这样理解,创建一个乌龟,乌龟能前进、后退、左转、右转,乌龟的尾巴朝下,它移动时就会画一条线。并且为了增加乌龟画图的艺术价值,... -
python中如何绘制等边三角形
2021-01-12 11:19:30要绘制等边三角形我们需要使用到turtle.fd和turtle.seth函数。 Turtle库是Python语言中一个很流行的绘制图像的函数库,它根据一组函数指令的控制在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。 代码实现... -
python六角形的绘制 编程_使用Python的turtle库实现六角形以及正方形螺旋线的绘制...
2020-11-20 20:31:121.六角形的绘制思路:一个六角形可以看作是两个等边三角形具有共同的中心且...代码如下:import turtleturtle.setup(650,350,200,200)turtle.penup()turtle.pensize(1)turtle.pencolor("red")turtle.fd(100)turtle.... -
重叠等边三角形绘制-python实现
2020-09-15 10:58:44代码: import turtle turtle.pencolor('blue') turtle.forward(200) turtle.right(-120) turtle.forward(200) turtle.right(-120) turtle.fd(200) turtle.right(180) turtle.fd(100) turtle.right(60) turtle.fd...