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.pswp.cn/web/43477.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/43477.shtml
英文地址,請注明出處:http://en.pswp.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&…