【简单代码】Python 海龟画图简单实现任何图象落在窗口中心处(五角星为例)

编程入门 行业动态 更新时间:2024-10-11 07:25:42

【<a href=https://www.elefans.com/category/jswz/34/1770983.html style=简单代码】Python 海龟画图简单实现任何图象落在窗口中心处(五角星为例)"/>

【简单代码】Python 海龟画图简单实现任何图象落在窗口中心处(五角星为例)

话不多说直接上代码:

import turtle
import mathdef go_centre(zuobiao):  # 此函数实现初始笔点左上移(因为本代码五角星是顺时针画,即在右下角)hang_list = []lie_list = []for hang, lie in zuobiao:hang_list.append(hang)lie_list.append(lie)a = max(hang_list) - min(hang_list)b = max(lie_list) - min(lie_list)angle = math.atan(b/a)length = (math.sqrt(a*a + b*b))/2turtle.penup()turtle.left(180-angle)turtle.forward(length)turtle.right(180-angle)turtle.pendown()turtle.screensize(500,500,'black')  # 以下实现画图初始化
turtle.color('white')
turtle.hideturtle()zuobiao = []  # 以下实现不同极点的坐标积累
turtle.penup()
for i in range(5):zuobiao.append(turtle.position())turtle.speed(5)turtle.forward(100)turtle.right(144)
turtle.pendown()go_centre(zuobiao)  # 实现笔头移位turtle.begin_fill()  # 以下实现画五角星
for i in range(5):turtle.speed(5)turtle.forward(100)turtle.right(144)
turtle.end_fill()turtle.done()  # 实现窗口停留

 就是以所画图象矩形对角线的中点来大致作为可以把图象画在坐标原点的中点。

 因为无论什么样的图形,它都能包含进一个矩形里,而矩形对角线的中点就可以近似作为这个图形的中点,把中点放在原点上,不就是图象在中心了吗。

def go_centre(zuobiao):  # 此函数实现初始笔点左上移(因为本代码五角星是顺时针画,即在右下角)hang_list = []lie_list = []for hang, lie in zuobiao:hang_list.append(hang)lie_list.append(lie)a = max(hang_list) - min(hang_list)b = max(lie_list) - min(lie_list)angle = math.atan(b/a)length = (math.sqrt(a*a + b*b))/2turtle.penup()turtle.left(180-angle)turtle.forward(length)turtle.right(180-angle)turtle.pendown()

 此函数就是令开始画的点移到上图视黄线的末端,从那里开始画。(因为本代码图象画出来是在坐标系的第四象限,所以就往左上方移,各位在参考时可以改一下相关内容)

zuobiao = []  # 以下实现不同极点的坐标积累
turtle.penup()
for i in range(5):zuobiao.append(turtle.position())turtle.speed(5)turtle.forward(100)turtle.right(144)
turtle.pendown()

因为此函数要用到图象所以极点的坐标,就要在开始时进行坐标的收集(就先让它画一遍),各位不要忘了把画笔抬起来。

 

但经过实践,图象越大,误差就越大,毕竟是简单方法嘛

 

 综上就这么多,这是我第一次学习的结果,就供各位参考,如有更好的方法请在评论区指点

这是我第二次发帖,不喜勿喷!

 

 

更多推荐

【简单代码】Python 海龟画图简单实现任何图象落在窗口中心处(五角星为例)

本文发布于:2024-03-23 23:30:59,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1744129.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:简单   落在   海龟   为例   画图

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!