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,一经查实,立即删除!

相关文章

C# 预处理器指令

C# 预处理器指令 概述 C# 预处理器指令是编译器在编译代码之前处理的指令。这些指令用于控制编译过程,包括条件编译、编译指令的定义和取消等。预处理器指令以 # 开头,不包含在代码的执行逻辑中,仅在编译阶段起作用。 常用的预处理器指令 1. #define 和 #undef #define…

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…

[NeetCode150] String Encode and Decode

String Encode and Decode Design an algorithm to encode a list of strings to a single string. The encoded string is then decoded back to the original list of strings. Please implement encode and decode Example 1: Input: [“neet”,“code”,“love”,“you…

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未来发展的几个关键趋势,并分析其可能的影响和…

[Linux][Shell][Shell变量]详细讲解

目录 1.本地变量2.变量定义3.取出变量值4.特殊变量5.特殊状态变量6.shell内置的变量命令1.echo2.eval3.exec 7.截取字符串8.特殊shell扩展变量处理1.语法2.应用场景 1.本地变量 定义Shell变量,变量名不需要加$本地变量只在⽤户当前shell⽣存期中有效 2.变量定义 变…

SpringBoot防止重复提交 AOP+自定义注解+redis

1.什么是重复提交呢 在Web开发中,重复提交(也称为双重提交或重复表单提交)是指用户在没有明确意图的情况下,多次提交同一表单的情况。这可能是由于用户多次点击提交按钮、表单提交过程中的网络延迟导致用户重复点击、或者由于浏览…

双向全桥隔离dc-dc变换器(DAB)

DAB(dual active bridge) 双向全桥隔离dc-dc变换器(DAB)和Buck/Boost不同,该变换器通过交流电感进行功率传输,其调制和控制不适合直接借鉴已有的研究。 调制挑战:开关网络相对复杂,调制自由度较多&#x…

揭秘SQL Server数据库选项:性能与行为的调控者

揭秘SQL Server数据库选项:性能与行为的调控者 在SQL Server的世界中,数据库选项是那些可以调整以优化数据库性能和行为的设置。它们是数据库管理员和开发者的得力助手,通过精细调控,可以显著提升数据库的响应速度和资源利用率。…

MySQL MVCC

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

C#——二进制流序列化和反序列化

C#二进制流序列化和反序列化 在C#中,可以使用BinaryFormatter来进行二进制的序列化和反序列化。 首先,定义一个可序列化的类 [Serializable] public class MyObject {public int IntProperty { get; set; }public string StringProperty { get; set; …

ubuntu 上配置开机自动启动ssh

一般安装了就会自动启动。但是各种rc.local, cron都测试了一下,还是这个systemd有效 使用 systemd 服务 创建文件 sudo nano /etc/systemd/system/custom-ssh.service [Unit] DescriptionStart SSH service at boot Afternetwork.target[Service] ExecStart/usr/…

软件开发(续).NET框架

1.解释一下.NET框架中的CLR(公共语言运行时)是什么,以及它的作用和功能是什么? CLR(Common Language Runtime)的概念和作用 在.NET框架中,CLR(Common Language Runtime&#xff09…

代码优化(2)——小程序登录

验证身份的时候,依赖的是cookie里面的token $this->request->server(HTTP_TOKEN,$this->request->request(token, \think\Cookie::get(token))) 小程序的交互权限验证,一般放到header里面进行鉴权,极少是通过cookie来传递参数验证…

一起来了解深度学习中的“梯度”

文章目录 前言一、什么是梯度?二、梯度计算三、优化算法四、示例五、梯度的作用六、形象化解释七、如果完全不懂公式可以实现这个算法吗?1. 使用 Hugging Face Transformers 实现深度学习任务1) 安装库2) 加载预训练模型和分词器3) 准备数据4) 进行推理5…

LeetCode HOT100(二)双指针

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