【简单代码】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()  # 实现窗口停留

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

48ffbdf1ba754b2f8f1830c50b6f6019.png

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

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 海龟画图简单实现任何图象落在窗口中心处(五角星为例)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/389120

相关文章

nginx部署https网站的实现步骤(亲测)

《nginx部署https网站的实现步骤(亲测)》本文详细介绍了使用Nginx在保持与http服务兼容的情况下部署HTTPS,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录步骤 1:安装 Nginx步骤 2:获取 SSL 证书步骤 3:手动配置 Nginx步骤 4:测

Python中Markdown库的使用示例详解

《Python中Markdown库的使用示例详解》Markdown库是一个用于处理Markdown文本的Python工具,这篇文章主要为大家详细介绍了Markdown库的具体使用,感兴趣的... 目录一、背景二、什么是 Markdown 库三、如何安装这个库四、库函数使用方法1. markdown.mark

一分钟带你上手Python调用DeepSeek的API

《一分钟带你上手Python调用DeepSeek的API》最近DeepSeek非常火,作为一枚对前言技术非常关注的程序员来说,自然都想对接DeepSeek的API来体验一把,下面小编就来为大家介绍一下... 目录前言免费体验API-Key申请首次调用API基本概念最小单元推理模型智能体自定义界面总结前言最

Python利用PIL进行图片压缩

《Python利用PIL进行图片压缩》有时在发送一些文件如PPT、Word时,由于文件中的图片太大,导致文件也太大,无法发送,所以本文为大家介绍了Python中图片压缩的方法,需要的可以参考下... 有时在发送一些文件如PPT、Word时,由于文件中的图片太大,导致文件也太大,无法发送,所有可以对文件中的图

Idea实现接口的方法上无法添加@Override注解的解决方案

《Idea实现接口的方法上无法添加@Override注解的解决方案》文章介绍了在IDEA中实现接口方法时无法添加@Override注解的问题及其解决方法,主要步骤包括更改项目结构中的Languagel... 目录Idea实现接China编程口的方法上无法添加@javascriptOverride注解错误原因解决方

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

MySql死锁怎么排查的方法实现

《MySql死锁怎么排查的方法实现》本文主要介绍了MySql死锁怎么排查的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录前言一、死锁排查方法1. 查看死锁日志方法 1:启用死锁日志输出方法 2:检查 mysql 错误

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加

Go Mongox轻松实现MongoDB的时间字段自动填充

《GoMongox轻松实现MongoDB的时间字段自动填充》这篇文章主要为大家详细介绍了Go语言如何使用mongox库,在插入和更新数据时自动填充时间字段,从而提升开发效率并减少重复代码,需要的可以... 目录前言时间字段填充规则Mongox 的安装使用 Mongox 进行插入操作使用 Mongox 进行更