"BOKU"のITな日常

BOKUが勉強したり、考えたことを頭の整理を兼ねてまとめてます。

Scratch(スクラッチ)(11)/花びら第二弾!突起のある少し複雑な形の花びらを描いてみる

f:id:arakan_no_boku:20200824233948p:plain

ペンを使って、花びらを描く第二弾です。

今回は突起のある、少し複雑な形の花びらを描きます。

Scratchの用語でわからないときは、以下を参照ください。

arakan-pgm-ai.hatenablog.com

目次

花びら関数2

今回、花びらを描くのに使う計算式です。

f:id:arakan_no_boku:20210629002210p:plain

X座標とY座標を求める部分は、前回と同じです。

f:id:arakan_no_boku:20210629233153p:plain

これをScratchにあてはめると、花びらが描ける・・はず・・です。

スクリプト::変数の定義

変数の数が少し多いです。

f:id:arakan_no_boku:20210629233527p:plain

上記の式と変数の対比は以下の通りです。

  • θ: ラジアン
  • a:花びらパラムA
  • b:花びらパラムB
  • n:突起の数
  • k1:切れ込みK1
  • k2:切れ込みK2
  • r:原点からの距離
スクリプト:花びらを描く

スクリプトのイメージです。

f:id:arakan_no_boku:20210629234248p:plain

原点からの距離(r)を求める計算式が長いので、前半部分と後半部分にわけて、それぞれ計算結果1と計算結果2に結果を保存してから、「計算結果1*計算結果2」で計算しています。

ループの回数は180にしています。

X座標、Y座標を求めるときに、花びらを大きく描くために各120をかけています。

これをしないと、ちっちゃくてほとんど見えない花びらになってしまうからです。

スクリプト:初期化

初期状態に戻すスクリプトです。

f:id:arakan_no_boku:20210629234819p:plain

各変数の初期化をして、ペン先をピンクにしています。

初期値は

  • 花びらパラムA:5
  • 花びらパラムB:2
  • 突起の数:2
  • 切れ込みK1:0.8
  • 切れ込みK2:0.3

にしました。

スクリプト:画面

f:id:arakan_no_boku:20210629235235p:plain

変数のうち、「花びらパラムA」と「突起の数」だけ表示して、スライダーで変更できるようにしました。

花びらの数は3から10、突起の数は1から3です。

別に他の変数を変更できるようにしても、もっと変更範囲を広げてもいいのですが、あまりスライダーを表示すると、ごちゃごちゃするので、こうしてます。

実行イメージ

初期知のままで、実行(スプライトをクリック)すると、こんな花びらになります。

f:id:arakan_no_boku:20210629235635p:plain

花びらの数と突起の数を増やすと、こんな花びらにもなります。

f:id:arakan_no_boku:20210629235751p:plain

実行できる画面を埋め込んでます

実際に試せるようにプロジェクトを埋め込んでます。

  プロジェクトも公開しています

このプロジェクトも公開しています

以下のURLです。

https://scratch.mit.edu/projects/548713191

ではでは。