"BOKU"のITな日常

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

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

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

今回はこんなところで。

ではでは。