《python语言程序设计》2018版第8章19题几何Rectangle2D类(中)-同志们我要起飞了

news2024/11/28 9:38:56

在这里插入图片描述

前言

    • 昨天的原始绘制两个矩形的代码段draw_rec2
    • 原始draw_rec2运行结果
    • 我们不是上面往右转90.我怎么往左转90不对吗??? ☺️
    • 结果
    • 利用已建立完的Rectangle2D类来实现
    • Rectangle2D类的代码可以找上集看,今天是锻炼的一天好几个倒立体式解锁了.祝大家愉快

经过昨天晚上的努力我终于知道了如何完成该题剩余的几个点的办法.但是我还要继续解决昨天结束的时候第2个矩形偏离中心的地问题

一、矩形为什么偏离了原点

    • 昨天的原始绘制两个矩形的代码段draw_rec2
    • 原始draw_rec2运行结果
    • 我们不是上面往右转90.我怎么往左转90不对吗??? ☺️
    • 结果
    • 利用已建立完的Rectangle2D类来实现
    • Rectangle2D类的代码可以找上集看,今天是锻炼的一天好几个倒立体式解锁了.祝大家愉快

为了方便大家观看.我将之前第2个矩形的中心点颜色从黄色换成了比较明显的蓝色

昨天的原始绘制两个矩形的代码段draw_rec2


    def draw_rec2(self, other_rec):
        x_1 = other_rec.__x
        y_1 = other_rec.__y
        width_r = other_rec.__width
        height_r = other_rec.__height
        turtle.penup()
        turtle.goto(self.__x, self.__y)
        turtle.dot(6, "blue")
        turtle.goto(self.__x - self.__width / 2, self.__height / 2 + self.__y)
        turtle.pendown()
        turtle.forward(self.__width)
        turtle.right(90)
        turtle.forward(self.__height)
        turtle.right(90)
        turtle.forward(self.__width)
        turtle.right(90)
        turtle.forward(self.__height)


        turtle.penup()
        turtle.goto(x_1, y_1)
        turtle.dot(6, "blue")
        turtle.goto(x_1 - width_r / 2, height_r / 2 + y_1)
        turtle.pendown()
        turtle.forward(width_r)
        turtle.right(90)
        turtle.forward(height_r)
        turtle.right(90)
        turtle.forward(width_r)
        turtle.right(90)
        turtle.forward(height_r)
        turtle.hideturtle()
        turtle.done()

原始draw_rec2运行结果

请添加图片描述

蓝色点是第2个rec的位置.但是它发生了旋转,我之前的几章也做过绘制两个园的情况,我都解决了.但这次我不想这样的方式.我想了解一下.
我首先尝试在第一个矩形绘制结束后加入了一个left

  turtle.left(90)

在这里插入图片描述

我们不是上面往右转90.我怎么往左转90不对吗??? ☺️

真不对

我只看到了最后一次往右转了90度.但是之前呢.是不是还有2次往右转90度呢???

在这里插入图片描述

所以不是90度.应该是270

  turtle.left(270)

在这里插入图片描述

这个问题解决了其他的对比问题就应该不是很难了.

二、实现输入坐标、计算周长和面积

    • 昨天的原始绘制两个矩形的代码段draw_rec2
    • 原始draw_rec2运行结果
    • 我们不是上面往右转90.我怎么往左转90不对吗??? ☺️
    • 结果
    • 利用已建立完的Rectangle2D类来实现
    • Rectangle2D类的代码可以找上集看,今天是锻炼的一天好几个倒立体式解锁了.祝大家愉快

结果

在这里插入图片描述

利用已建立完的Rectangle2D类来实现

def main():
    x1,y1,width1,height1 = eval(input("Enter x1,y1,width1,height1: "))
    x2,y2,width2,height2 = eval(input("Enter x2,y2,width2,height2: "))
    r1 = Rectangle2D(x1,y1,width1,height1)
    r1.print_text(1)
    area_r1 =r1.get_area()
    print(f"Area for r1 is {area_r1}")
    perimeter_r1 =r1.get_perimeter()
    print(f"Perimeter for r1 is {perimeter_r1}")

    r2 = Rectangle2D(x2,y2,width2,height2)
    r2.print_text(2)
    area_r2 = r2.get_area()
    print(f"Area for r2 is {area_r2}")
    perimeter_r2 = r2.get_perimeter()
    print(f"Perimeter for r2 is {perimeter_r2}")



main()

Rectangle2D类的代码可以找上集看,今天是锻炼的一天好几个倒立体式解锁了.祝大家愉快

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

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

相关文章

Python画笔案例-078 绘制 颜色渐变之coloradd

1、绘制纯 颜色渐变之coloradd 通过 python 的turtle 库绘制 颜色渐变之coloradd,如下图: 2、实现代码 绘制 颜色渐变之coloradd,以下为实现代码: """颜色渐变之coloradd.py本程序需要coloradd模块支持,请在cmd窗口,即命令提示符下输入pip install colorad…

VMware桥接模式无法连接网络

windows下打开控制面板,找到WLAN,记住下面的名称(带有VMware的都是虚拟机的网卡,要找到物理主机的网卡) 回到VMware,编辑——打开虚拟网络编辑器 桥接选择上面的WLAN下的网络名称,确定即可。&…

tortorise数据库迁移变化aerich

数据库迁移 使用场景,当需要修改定义的数据库中表的数据时,就可以利用aerich进行迁移改动 例如 class Asset(models.Model):aid fields.CharField(max_length50, pkTrue)asset_name fields.CharField(max_length150)target_name fields.CharField(…

GO网络编程(三):海量用户通信系统1:登录功能初步

一、准备工作 需求分析 1)用户注册 2)用户登录 3)显示在线用户列表 4)群聊(广播) 5)点对点聊天 6)离线留言 主界面 首先,在项目根目录下初始化mod,然后按照如下结构设计目录: 海量用户通信系统/ ├── go.mod ├── client/ │ ├──…

血液细胞计数与检测(BCCD)数据集教程

BCCD 数据集:血液细胞检测与计数-CSDN博客文章浏览阅读431次,点赞5次,收藏3次。BCCD 数据集:血液细胞检测与计数 BCCD_Dataset BCCD (Blood Cell Count and Detection) Dataset is a small-scale dataset for blood cells detecti…

U盘格式化别担心,数据恢复神器来了!

一、恢复数据的紧迫性和希望 别担心,小编我有幸深陷U盘数据丢失的境地,因此通过不懈的努力与反复试验,今日在此为广大读者分享一次趟雷后恢复数据工具的真实体验;当U盘格式化后,你可能会面临数据的丢失,但…

超简单 Flux 换背景工作流:结合最新 ControlNet 深度 Depth 模型

在本篇文章中,我们将深入探讨如何使用 Flux ControlNet Depth 模型进行换背景。这种方法是我之前基于 Flux 模型换背景工作流的简化版。虽然旧的工作流程功能强大,但它非常复杂且运行缓慢。今天,我们将学习一个更快速、更易用的替代方案。 F…

变电站红外检测数据集 1180张 变电站红外 标注voc yolo 13类

变电站红外检测数据集 1180张 变电站红外 标注voc yolo 13类 变电站红外检测数据集 名称 变电站红外检测数据集 (Substation Infrared Detection Dataset) 规模 图像数量:1185张图像。类别:13种设备类型。标注个数:2813个标注。 数据划分…

【全球顶级域名后缀】

数据时间: 2024.10.6 广告: 五分钟申请SSL证书 (手机电脑都能用) ["aaa","aarp","abarth","abb","abbott","abbvie","abc","able","abogado","abudhabi","ac"…

一项研究表明,只需一滴干血,新的检测技术或许可以在几分钟内发现癌症

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

视频加字幕用什么软件最快?12款工具快速添加字幕!

对于大多数同学来讲,剪辑中比较头疼的就是如何给视频加字幕和唱词啦,特别是用Pr或者FCXP等专业剪辑软件,加字幕也是特别费时的,哪怕是有批量添加的功能orz... 虽然关于这方面的内容已经很多啦,但是真正全面的内容还特…

unity 2d 近战攻击判定的三种方式以及精确获取碰撞点

精确获取碰撞点 核心是获取武器碰撞盒最顶点&#xff0c;然后获取敌人碰撞盒距离该点最近的点 /// <summary>/// 获取获取武器前端位置 碰撞盒最左或最右顶点/// </summary>/// <param name"collider"></param>/// <param name"…

如何把数组作为参数传递给函数(注意,只是传递数组名)?

直接上代码吧&#xff1a; template<class T, size_t nSize> void printArray(T(&Array)[nSize]) {T* pt Array;for (size_t n 0; n < nSize; n) {cout << *(pt n) << "\t";}cout << "\n"; } int main() {int ia[] {…

6款不错的本地大模型运行工具推荐

运行大型语言模型 (LLM)&#xff08;如 ChatGPT 和 Claude&#xff09;通常涉及将数据发送到 OpenAI 和其他 AI 模型提供商管理的服务器。虽然这些服务是安全的&#xff0c;但一些企业更愿意将数据完全离线&#xff0c;以保护更大的隐私。 本文介绍了开发人员可以用来在本地运…

基于Vue.js + 大屏Datav + Spring Boot后端的养殖场环境设备实时监测控制系统

开发一个基于Vue.js 大屏Datav Spring Boot后端的养殖场环境设备实时监测控制系统是一个复杂而全面的任务。下面将详细介绍整个项目的架构设计、技术选型、开发实现和测试部署过程。 1. 需求分析 1.1 功能需求 环境参数监控&#xff1a;实时监控温度、湿度、光照强…

C/C++/EasyX——入门图形编程(5)

【说明】友友们好&#xff0c;今天来讲一下键盘消息函数。&#xff08;其实这个本来准备和鼠标消息函数放在一起的&#xff0c;但是上一篇三个放在一起&#xff0c;内容就有点多了&#xff0c;只写一个又太单调了&#xff0c;所以键盘消息函数的内容就放在这一篇了 (^&#xff…

大语言模型中文本分割策略的综合指南

整理 本文整理了一些简单的文本切分方式&#xff0c;适用于大语言模型经典应用RAG或相似场景。 一般切分 如果不借助任何包&#xff0c;很容易想到如下切分方案&#xff1a; text "我是一个名为 ChatGLM3-6B 的人工智能助手&#xff0c;是基于清华大学 KEG 实验室和智…

模型 SECI(知识的创造)

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。知识创造的螺旋转化模型。 1 SECI的应用 1.1 Tech Innovations移动应用创新 Tech Innovations是一家软件开发公司&#xff0c;致力于开发创新的移动应用程序。为了提升团队的知识共享和创新能力&…

力扣6~10题

题6&#xff08;中等&#xff09;&#xff1a; 思路&#xff1a; 这个相较于前面只能是简单&#xff0c;个人认为&#xff0c;会print打印菱形都能搞这个&#xff0c;直接设置一个2阶数组就好了&#xff0c;只要注意位置变化就好了 python代码&#xff1a; def convert(self,…

感知机及其实践

说明 感知机是SVM(support vector machine,支持向量机)的基础&#xff0c;更是机器学习的基础。本文的目的在于把感知机的相关概念捋清楚&#xff0c;并基于感知机做最基本的线性可分的二分类实践。 有关机器学习的一些基础概念&#xff0c;读者可以参考本专栏的第一篇博文[4]&…