SE_BOKUのまとめノート的ブログ

SE_BOKUが知ってること・勉強したこと・考えたことetc

Scratch(スクラッチ)(12)/リサジュ-曲線を描いてみる

f:id:arakan_no_boku:20200824233948p:plain

目次

リサジュー曲線を描く

リサジュー曲線を描いてみます。

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

arakan-pgm-ai.hatenablog.com

リサジュー曲線とは、こんな感じの曲線のことです。

f:id:arakan_no_boku:20210625011557p:plain

X、Y座標を以下のように求めます。

f:id:arakan_no_boku:20210625222126p:plain

スクリプト:使用する変数 

まずは変数の定義です。

f:id:arakan_no_boku:20210625222456p:plain

上記の計算式と変数の対比はこんな感じ。

  • a:パラメータA
  • b:パラメータB
  • θ:ラジアン
  • X:SIN_A
  • Y:SIN_B

計算式のX,Yが、SIN_A、SIN_Bにしているのは、Scratchで描画するには、×120のようにして広げてやる必要があるからです。

もとの計算式のままだと、座標の変化が小さすぎるので水増しするわけです。

スクリプト:描画するスクリプト

スクリプトの全体です。

f:id:arakan_no_boku:20210625223210p:plain

計算式をほぼそのままスクリプトにしてます。

ちょっと工夫が必要だったのは。

f:id:arakan_no_boku:20210625223329p:plain

の部分で角度を増やす量を「115」にすることです。

これを普通に「1」ずつとか増やすだけだと、ほとんど変化が視覚で確認できないような小さな動きになってしまうからです。

f:id:arakan_no_boku:20210625223526p:plain

この計算結果のSIN_A、SIN_Bに120をかけているところもそうです。

動き(変化)を大きくしないと、見た目に面白くありませんから。

スクリプト:初期化

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

f:id:arakan_no_boku:20210625223921p:plain

原点に戻してます。

パラメータAを「3」、パラメータBを「2」に初期化してます。

スクリプト:画面イメージ

画面イメージです。

スプライトは、なんとなく蝶々にしました。

f:id:arakan_no_boku:20210625224153p:plain

パラメータAとパラメータBをスライダーにして、初期値から8くらいまで変化できるようにしています。

 

実行できるプロジェクトを埋め込み

埋め込みした画面で実行できます。

パラメータを変えていくと、こんな図とか。

f:id:arakan_no_boku:20210625225009p:plain

こんな図とか。

f:id:arakan_no_boku:20210625225156p:plain

いくつかのバリエーションをを確認できます。

 

プロジェクトのURLです

こちらのURLでプロジェクトのページにアクセスできます。

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

 中を見るでソースを確認ください。

scratchの他の記事一覧はこちらです。

arakan-pgm-ai.hatenablog.com

今回はこんなところで。

ではでは。