《python程序语言设计》2018版第5章第51题利用turtle画18x18的格子

05.51.01version
先从第一一个格子来做
在这里插入图片描述


turtle.right(45)
turtle.circle(18, steps=4)
turtle.hideturtle()
turtle.done()

这个代码很简单的现实出格子的样式。
现在的问题是循环的话。首先角度45度怎么处理
随着45度一次一次迭代。他是应该转45+90呢还是45+45呢???
我们可以尝试一下。

24.07.03code

a = 18
for i in range(1, 18):turtle.penup()turtle.right(45 * i)turtle.pendown()turtle.circle(18, steps=4)turtle.penup()turtle.goto(a * i, a * i)turtle.hideturtle()
turtle.done()

这个代码turtle像旋转的流星不断的甩尾,所以要改一下
在这里插入图片描述

说白了x,y的坐标我都乘以i造成了x,y自由飞行

2024.07.04

我将此处用原来的y轴从a*i改成0
现在可以很好的看到虽然方形还是再乱画,但是其实点都是一个
那也就说明,我现在这行代码是设计对了

    turtle.goto(a * i, 0)

在这里插入图片描述

接下来要处理的还是right该如何变动

    turtle.right(45)turtle.left(45)

45i 和不乘i甚至righti left不乘i都是效果不一样。大家可以试试。

在这里插入图片描述

我现在将right和left都不乘以i我取得了我想要的成果
当然距离我就好理解了。
在这里插入图片描述

此段代码可以循环绘画118列的矩形
a = 26
for i in range(1, 18):turtle.penup()turtle.right(45)turtle.pendown()turtle.circle(18, steps=4)turtle.left(45)turtle.penup()turtle.goto(a * i, 0)turtle.hideturtle()
turtle.done()

在这里插入图片描述
在这里插入图片描述

我数学不好,大家自己计算一下吧。哈哈为什么。我也清楚。

接近成功 的代码

a = 26
for i in range(1, 19):turtle.penup()turtle.right(45)turtle.pendown()turtle.circle(18, steps=4)turtle.left(45)#它如果在left后面就回出现一个单独的方框,然后再出现阵列turtle.goto(a * i, 0)turtle.penup()for j in range(1, 19):turtle.penup()turtle.right(45)turtle.pendown()turtle.circle(18, steps=4)turtle.left(45)turtle.penup()turtle.goto(a * i, a * j)turtle.hideturtle()
turtle.done()

增加了j的for循环直接成功了可是。。。。看不全屏幕

在这里插入图片描述
在这里插入图片描述

最终的代码。我一会上瑜伽课了。namaste!

turtle.speed(30)
turtle.screensize(1000, 1000)
a = 26
for i in range(1, 19):turtle.penup()turtle.goto(a * i, 0)turtle.right(45)turtle.pendown()turtle.circle(18, steps=4)turtle.left(45)turtle.penup()for j in range(1, 19):turtle.penup()turtle.right(45)turtle.pendown()turtle.circle(18, steps=4)turtle.left(45)turtle.penup()turtle.goto(a * i, -a * j)turtle.hideturtle()
turtle.done()

在这里插入图片描述

祝大家学习愉快 3联 3联

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

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

相关文章

《QT从基础到进阶·四十三》QPlugin插件多线程问题和只有插件dll没有头文件和lib文件时调用插件中的方法

1、插件和多线程问题: 创建插件对象不能放到多线程执行,不然报错:ASSERT failure in QWidget: "Widgets must be created in the GUlthread. //不能放在多线程执行 QPluginLoader pluginLoader(pluginsDir.absoluteFilePath(fileName))…

pandas中 groupby分组详解 1

引言 在一个使用 pandas 做数据分析的项目过程中,再次深刻理解了一下 pandas 中使用 groupby 进行分组的一些细节问题,以及对想要做的操作如何实现,在此记录; 问题 1:groupby 分组查看分组结果,以及重设分…

【C++】Google Test(gtest)单元测试

文章目录 Google Test(gtest)单元测试使用示例更多用法测试夹具 Google Test(gtest)单元测试 单元测试是一种软件测试方法,它旨在将应用程序的各个部分(通常是方法或函数)分离出来并独立测试&a…

Firewall防火墙

Linux包过滤防火墙 netfilter 称为Linux防火墙的“内核态”位于Linux内核 中的包过滤功能体系iptables “用户态”位于/sbin/iptables,包过滤的工作层次 主要是网络层,针对IP数据包体现在对包内的IP地址、端口等信息的处理上 iptables的表、链结构 规…

NodeJs的安装与环境变量配置

Node.js的环境变量配置主要涉及设置Node.js的安装路径、npm(Node Package Manager)的全局模块安装路径和缓存路径,以及可能需要的国内镜像源配置。以下是详细的配置步骤: 一、安装Node.js 下载Node.js安装包: 访问Nod…

Android(2) : 创建手机模拟器

1.进入device manager, 选择添加 2.配置选择 名称: Pixel8 Pro 大小: 6.7英寸 分辨率: 1344x2992px Density: xxhdpi 3.下载镜像 4.编辑虚拟机内存 文件如下 C:\Users\admin\AppData\Roaming\Google\AndroidStudio2024.1\studio64.exe.vmoptions 我的电脑是32G内存, …

直播预告|飞思实验室暑期公益培训7月10日正式开启,报名从速!

01 培训背景 很荣幸地向大家宣布:卓翼飞思实验室将于7月10日正式开启为期两个月的暑期公益培训!本次培训为线上直播,由中南大学计算机学院特聘副教授,RflySim平台总研发负责人戴训华副教授主讲。 培训将基于“RflySim—智能无人…

编程上下文Context及其实现原理

编程上下文Context及其实现原理 author:shengfq date:2024-07-06 title:编程上下文Context及其实现原理 category:编程思想1.编程中的上下文Context是指什么? 在编程和软件工程领域,“上下文”(Context)是一个多义词,其含义可以…

1.Python学习笔记

一、环境配置 1.Python解释器 把程序员用编程语言编写的程序,翻译成计算机可以执行的机器语言 安装: 双击Python3.7.0-选择自定义安装【Customize installation】-勾选配置环境变量 如果没有勾选配置环境变量,输入python就会提示找不到命令…

Idea新增Module报错:sdk ‘1.8‘ type ‘JavaSDK‘ is not registered in ProjectJdkTable

文章目录 一,创建Module报错二,原因分析三,解决方案1,点击上图的加号,把JDK8添加进来即可2,点击左侧[Project],直接设置SDK为JDK8 四,配置检查与验证 一,创建Module报错 …

创维汽车开展年中总结会:创新创造·勇开拓 智慧经营·攀高峰

2024年7月3日,回顾上半年的工作成果,总结经验教训,明确下半年的发展方向和重点任务,创维汽车于山西省晋中市榆次区山西联合创维体验中心开展年中总结会。 创维集团、创维汽车创始人黄宏生;开沃集团联合创始人、首席执…

分析一下多方联合计算中的数据泄露场景

假设某一天,某地社保局接到了教育局的求助, 希望提供社保表,和教育局自身的毕业生信息表 进行联合分析, 以得到2024年各学校的毕业生实力。 这时候社保局犯了难,两会会议里刚提过隐私保护相关的议题: 隐私…

2024.7.6 刷题总结

2024.7.6 **每日一题** 3101.交替子数组计数,这道题刚开始看到时想用双循环遍历数组以及位运算来判断是否为交替子数组,但是数据范围不允许,所以只能考虑一个循环,先考虑数学推导看看规律。经过数学分析发现,只需要枚…

【C++干货基地】C++模板深度解析:进阶技巧与高级特性掌握(按需实例化、全特化与偏特化)文末送书

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引入 哈喽各位铁汁们好啊,我是博主鸽芷咕《C干货基地》是由我的襄阳家乡零食基地有感而发,不知道各位的…

动态路由--RIP配置(思科cisco)

一、简介 RIP协议(Routing Information Protocol,路由信息协议)是一种基于距离矢量的动态路由选择协议。 在RIP协议中,如果路由器A和网络B直接相连,那么路由器A到网络B的距离被定义为1跳。若从路由器A出发到达网络B需要…

Vben:表格的表头和表格的内容对不齐,以及解决方法

文章目录 一、问题描述二、解决方法 一、问题描述 基于Vue-Vbne-admin框架进行前端开发的时候,调用表格useTable函数实现表格之后,发现表格的表头和表格的内容对不齐。如下图所示。针对这种情况,本文记录了解决方法。 调用的模块如下&#x…

带你一步步搭建Web自动化测试框架

测试框架的设计有两种思路,一种是自底向上,从脚本逐步演变完善成框架,这种适合新手了解框架的演变过程。另一种则是自顶向下,直接设计框架结构和选取各种问题的解决方案,这种适合有较多框架事件经验的人。本章和下一张…

优化LabVIEW代码以提高软件性能

优化LabVIEW代码对于提高软件性能、减少执行时间和资源消耗至关重要。以下是一些具体的策略和方法,可以帮助LabVIEW程序员优化代码: 1. 代码结构和模块化 使用子VI:将重复使用的代码段封装成子VI,提高代码的可读性和可维护性。 避…

使用Vue CLI方式创建Vue3.0应用程序

Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统。新版本的 Vue CLI 的包名由原来的 vue-cli 改成了 vue/cli。 在开发大型项目时,需要考虑项目的组织结构、项目构建和部署等问题。如果手动完成这些配置工作,工作效率会非常低。为此,Vue.…

第8篇 智能合约的商业应用场景解析

一、引言 在区块链技术的众多应用中,智能合约无疑是其中的一颗璀璨明珠。它通过自动化、去中心化和不可篡改的特性,为商业世界带来了革命性的变革。今天,我们将一同探索智能合约在十个不同行业中的实际应用,感受其独特的魅力。 二、智能合约的商业应用案例 供应链管理:…