scratch3编程05-画笔绘制圆及与圆相关的图形

目录

一,圆 

1,空心圆  

2,实心圆

 3,嵌套在一起的圆

4,圆环

二,五角星 

1,空心五角星 

1)思路 

 2)完整的程序

2,实心五角星 

1)思路 

 2)完整的程序

 三,绘制美国队长的盾牌

1,效果

 2,完整的程序


一,圆 

一个完整的圆一定得旋转360°才能够得到(因为圆有360°)

1,空心圆  

现在我以一个没有闭合的圆为例,如下👇 

 

如果我想要圆闭合,该怎么办?这个时候就可以考虑将旋转度数变小,变成旋转1°(也可以更小,旋转0.5°) ,当度数变小,相应的重复次数也需要进行变化,只要旋转度数和重复次数相乘等于360°就行,即旋转度数×重复次数=360,所以旋转度数越小,重复次数越多,绘制的速度越慢,如下,我将旋转度数设置为0.5°,重复次数就需要写成3600次👇

2,实心圆

上面已经绘制出了空心的圆,实心圆其实就是每一次笔移动的轨迹叠加在一起,实心圆的颜色就是很多条线紧密的挨在一起,画笔本身的颜色而已,因此可以在之前空心圆的基础上进行如下修改:

  • 移动步数之前就让画笔落笔,让画笔留下从原点移动到右边的轨迹(笔迹)
  • 画笔移动到原点的时候不抬笔,直接让画笔留下从运动的位置移动回原点的轨迹

 

 3,嵌套在一起的圆

在上一步中,绘制了一个红色的实心圆👇

 接下来,在红色的实心圆里面接着绘制一个白色的实心圆【白色实心圆的半径一定要比红色实心圆小才能够在红色实心圆里面(即,只需要修改上面代码块的画笔颜色和移动步数即可)】如下👇

看着是不是很像个空心的圆环?其实仅仅只是因为背景是白色而已,如果我换成黑色背景如下👇

 可以看到,它依旧是个实心的圆,如果还想要继续嵌套圆进去,可以继续将半径(移动步数)减小,就可以。

接下来就绘制一个圆环

4,圆环

绘制圆环和之前的嵌套圆的绘制相似,只是这个时候里面的圆没有颜色,如下👇 

二,五角星 

1,空心五角星 

1)思路 

绘制五角星的关键在于 ,内角的分析。

 

如上图,可以看到,五角星中间是一个正五边形。

因为多边形内角和与边长之间存在规律:多边形内角和=(边长-2)×180°,例如

  • 三角形内角和=(3-2)×180°=180°
  • 四边形内角和=(4-2)×180°=360°
  • 五边形内角和=(5-2)×180°=540°。

又因为正多边形的内角相等,所以正五边形中的每一个内角度数=540/5=108°。

现在,依旧一开始在舞台的中央(坐标原点)位置让笔落下,并让笔朝向90°方向(画笔的笔尖朝向右边)

 

第一个边的旋转度数确定好之后,就可以通过移动步数来绘制第一个边的长,如下:

 之后,将画笔向右旋转144°,并移动步数,如下👇

接着继续分析,如下👇 

如上,可以看到,画笔需要继续向右旋转144°,并且,继续移动步数,绘制边长,如下 :

剩下的边和之前的分析方法一样,类推就行。 

 2)完整的程序

2,实心五角星 

1)思路 

 绘制实心五角星和绘制实心圆类似,也是通过绘制多个线条来填充图形。

于是,依旧还是使用之前绘制的空心五角星,只需要修改一个地方,就是最后一步的移动160步去掉,换成:每移动一步就绘制一个线条。重复次数需要设置成比160大的数字,才能够很好的绘制完整的五角星。如下👇

因为需对绘制的四个角进行操作,所以落笔应该放在重复执行里面(在此之前都是抬笔),如下:

运行之后,此时的画笔位置如下:

从上面可以看到,一直都在同一个点上。如果想要绘制多条线,可以如下绘制:

 2)完整的程序

 

 三,绘制美国队长的盾牌

上面的图片可以保存到电脑,之后打开scratch软件上传图片作为背景,之后画笔的颜色就可以从图片中选取,更逼真。 

先将之前用来绘制五角星的代码块用自制积木保存起来,如下👇 

 然后自制积木命名为“四个嵌套的圆”:先绘制最外边的红色,再绘制中间的白色,之后绘制最里面的红色和蓝色圆,最后才是白色的五角星. 

1,效果

效果视频还在审核,今天下午有空我再上传(建议自己打一遍,或者是去网盘下载文件,自己运行出来效果) 

 2,完整的程序

 

在上面的程序中,“四个嵌套的圆”只截图了绘制两个圆的部分,后面的两部分也是一样的操作,唯二不同就是:颜色改变,和步数都分别减小15 。

因为美国队长盾牌中间的五角星的五个角都是接触到最里面的蓝色圆的,所以,可以考虑将圆之间的距离变大,让中间的蓝色圆变小,使得五角星能够接触到蓝色圆的边缘。【先去尝试,这里就不详细写】 

对应的文件请到这篇文章所在专栏的夸克网盘中下载:

 

经过尝试,发现可以如下修改,使得中间的五角星可以在最里面的圆里居中 ,如下👇

 

有问题请在评论区留言或者是私信我,回复时间不超过一天。 

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

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

相关文章

RK3568笔记三十三: helloworld 驱动测试

若该文为原创文章,转载请注明原文出处。 报着学习态度,接下来学习驱动是如何使用的,从简单的helloworld驱动学习起。 开始编写第一个驱动程序—helloworld 驱动。 一、环境 1、开发板:正点原子的ATK-DLRK3568 2、系统&#xf…

d3dcompiler_43.dll文件是什么?如何快速有效的解决d3dcompiler_43.dll文件丢失问题

dcompiler_43.dll 是一个Windows系统中的系统文件,属于DirectX软件的一部分。这个dcompiler_43.dll(动态链接库)文件主要用于处理与3D图形编程有关的任务,是运行许多游戏和高级图形程序必需的组件之一。那么如果电脑丢失d3dcompil…

香蕉派BPI-Wifi6迷你路由器公开发售

Banana Pi BPI-Wifi6 Mini 公开发售。 Banana Pi BPI-Wifi6 Mini 开源路由器采用Triductor TR6560 TR5220 wifi SOC设计,是一款迷你尺寸的wifi6路由器解决方案。内置高性能双核ARM Cortec A9处理器用于WIFI报文转发或智能业务处理,内置高性能LSW和硬件N…

ubuntu 上vscode +cmake的debug调试配置方法

在ubuntu配置pcl点云库以及opencv库的时候,需要在CMakeLists.txt中加入相应的代码。配置完成后,无法调试,与在windows上体验vs studio差别有点大。 找了好多调试debug配置方法,最终能用的有几种,但是有一种特别好用&a…

ubuntu部署minio集群

minio集群介绍 官方文档:https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-multi-node-multi-drive.html 本方案采用在多节点多驱动器 (MNMD) 或“分布式”配置部署 MinIO。 MNMD 部署提供企业级性能、可用​​性和可扩展性&#…

jmeter-beanshell学习4-beanshell截取字符串

再写个简单点的东西,截取字符串,参数化文件统一用csv,然后还要用excel打开,如果是数字很容易格式就乱了。有同事是用双引号把数字引起来,报文里就不用加引号了,但是这样beanshell处理起来,好像容…

Facebook社交平台的未来发展趋势分析

随着科技和社交需求的不断演变,Facebook作为全球最大的社交平台之一,其未来发展的趋势备受关注。从技术创新到社会影响,Facebook正在经历着前所未有的变化和挑战。本文将探讨Facebook未来发展的几个关键趋势,并分析其可能的影响和…

MySQL MVCC

总结自小林coding,bojiangzhou 脏读、不可重复读、幻读 说的都是并发读取的问题,最简单的方式就是给记录加一把锁,不管是更新、读取记录都需要竞争到这把锁之后才能操作。但这种方式的并发性能可想而知会有多么低。 于是 InnoDB 就设计了MVC…

LeetCode HOT100(二)双指针

移动0 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 解法1:双指针交换 指针L&…

“论基于构件的软件开发方法及其应用”写作框架,软考高级论文,系统架构设计师论文

论文真题 基于构作的软件开发 (Component-Based Software Development,CBSD) 是一种基于分布对象技术、强调通过可复用构件设计与构造软件系统的软件复用途径。基于构件的软件系统中的构件可以是COTS (Commercial-Off-the-Shelf)构件&#x…

Spring Boot轻松整合Minio实现文件上传下载功能

一、Linux 安装Minio 安装 在/root/xxkfz/soft目录下面创建文件minio文件夹,进入minio文件夹,并创建data目录; [rootxxkfz soft]# mkdir minio [rootxxkfz soft]# cd minio [rootxxkfz minio]# mkdir data 执行如下命令进行下载 [rootxx…

Java内存划分详解:从基础到进阶

Java内存划分详解:从基础到进阶 1. 程序计数器(Program Counter Register)2. Java虚拟机栈(Java Virtual Machine Stack)3. 堆(Heap)4. 方法区(Method Area)5. 运行时常量…

[计网初识1] TCP/UDP

学习内容 1.TCP建立链接的3次握手,断开连接的4次挥手 2.TCP报文段组成 内容 1.TCP 建立连接的3次握手? 假设主动方是客户端,被动方是服务端。 第一次 客户端给服务端发送 “hello,我是客户端” (TCP段中 SYN1) 第二次 服务端给客户端发送"我接…

从零开始的python学习生活2

接上封装 class Phone:__volt0.5def __keepsinglecore(self):print("让cpu以单核运行")def if5G(self):if self.__volt>1:print("5G通话已开启")else:self.__keepsinglecore()print("电量不足,无法使用5G通话,已经设置为单…

Django项目创建的准备工作【 2 】

【 一 】调整后端目录 #1 目录结构 """ ├── luffy_api├── logs/ # 项目运行时/开发时日志目录 - 包├── manage.py # 脚本文件├── luffy_api/ # 项目主应用,开发时的代码保存 - 包├── apps/ …

【Git基本操作】添加文件 | 修改文件 | 及其各场景下.git目录树的变化

目录 1. 添加文件&add操作和commit操作 2. .git树状目录的变化 3. git其他操作 4. 修改文件 4.1 git status 4.2 git diff 1. 添加文件&add操作和commit操作 add操作:将工作区中所有文件的修改内容 添加进版本库的暂存区中。commit操作:…

系统服务综合实验(dns服务,nfs服务)

题目:现有主机 node01 和 node02,完成如下需求: 1、在 node01 主机上提供 DNS 和 WEB 服务 2、dns 服务提供本实验所有主机名解析 3、web服务提供 www.rhce.com 虚拟主机 4…

three-tile: 1. 第一个three-tile程序

上篇介绍了:three-tile: 一个开源的轻量级三维瓦片库-CSDN博客 three-tile 是一个开源的轻量级三维瓦片库,它基于threejs使用typescript开发,提供一个三维地形模型,能轻松给你的应用增加三维瓦片地图。 项目地址&…

C#知识|账号管理系统:UI层-添加账号窗体设计思路及流程。

哈喽,你好啊,我是雷工! 前边练习过详情页窗体的设计思路及流程: 《C#知识|上位机UI设计-详情窗体设计思路及流程(实例)》 本节练习添加账号窗体的UI设计,以下为学习笔记。 01 效果展示 02 添加窗体 在UI层添加Windows窗体,设置名称为:FrmAddAcount.cs 设置窗体属…

Nginx七层(应用层)反向代理:UWSGI代理uwsgi_pass篇

Nginx七层(应用层)反向代理 UWSGI代理uwsgi_pass篇 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this a…