スクラッチプログラミング - sin サイン・cos コサインのつかいかた

Scratch の sin サイン・cos コサインをつかって、キャラクターをぐるぐる、ゆらゆらうごかしてみましょう。sin や cos のブロックをつかったことがなくてもわかりやすいように、たくさんのサンプルをのせて解説(かいせつ)します。

スクラッチプログラミング - sin サイン・cos コサインのつかいかた

sin サイン・cos コサインをつかってみよう

この記事(きじ)では、Scratch (スクラッチ)の演算(えんざん)ブロックである ()のsin()のcos のつかいかたを紹介(しょうかい)します。

()のsin()のcos をつかうと、次(つぎ)のようなうごきをつくることができます。

  • ぐるぐるとまわす
  • 波(なみ)の形(かたち)をつくる
  • なめらかにうごかす

いろいろなスクリプトの例(れい)をみながら、sin サインと cos コサインについて一緒(いっしょに)まなびましょう!

サンプルプロジェクト

下(した)にあるのは、()のsin()のcos をつかったサンプルプロジェクトです。星(ほし)、船(ふね)、波(なみ)、フグは、sin サインと cos コサインのブロックでうごかしています。

Scratch|サイン・コサインをつかったサンプルGIF
Scratch|サイン・コサインをつかったサンプルGIF

sin・cos の説明(せつめい)

ブロックをつかう前(まえ)に、sin サイン・cos コサインとはどういうものかしっておきましょう。

  • sin サインと cos コサインは、三角関数(さんかくかんすう)というものである。
  • 値(あたい)が周期的(しゅうきてき)に変化(へんか)する、という特徴(とくちょう)がある。

「周期的(しゅうきてき)に変化(へんか)する」とは、どういうことでしょうか?

たとえば、わたしたちの日常生活(にちじょうせいかつ)で周期的(しゅうきてき)なものといえば、次(つぎ)のようなものがあります。

  • 朝(あさ)〜昼(ひる)〜夜(よる)のくりかえし
  • 春(はる)〜夏(なつ)〜秋(あき)〜冬(ふゆ)のうつりかわり
しゅうきてきなもののれい
しゅうきてきなもののれい

このように、「ほぼ一定(いってい)の間隔(かんかく)でおなじことがくりかえされる」というのが、周期的(しゅうきてき)の意味(いみ)です。

では、()のsin()のcos のブロックをつかうとどのような結果(けっか)がでるか、みてみましょう。値(あたい)が周期的(しゅうきてき)であることに注目(ちゅうもく)してみてください。

  • sin サインと cos コサインでえられる値(あたい)は、「-11」の間(あいだ)でくりかえす。
  • sin サインは 0 から、cos コサインは 1 からはじまる。
  • () におなじ数(かず)をいれても、sin サインと cos コサインではことなる値(あたい)になる。
サイン・コサインのれい①
サイン・コサインのれい①

() にどんな数(かず)をいれても、結果(けっか)が「-11」からはみだすことはありません。

サイン・コサインのれい②
サイン・コサインのれい②

なぜ、値(あたい)が「-11」になるのでしょうか?

それは、sin サインと cos コサインが、半径(はんけい) 1 の円(えん) 上(じょう)の、縦(たて)の位置(いち)・y 座標(ざひょう)と、横(よこ)の位置(いち)・x 座標(ざひょう)をあらわすものだからです。下(した)の画像(がぞう)の「点(てん) P」をみてください。

  • P は、角度(かくど)におうじて座標(ざひょう)が変化(へんか)する。
  • P の y 座標(ざひょう)が sin サイン、x 座標(ざひょう)が cos コサイン。
はんけい1のえんと、サイン・コサインのかんけい
はんけい1のえんと、サイン・コサインのかんけい

突然(とつぜん)円(えん)の図(ず)がでてきて、すこしむずかしいですね。ここでは、次(つぎ)のことがわかれば大丈夫(だいじょうぶ)です。

  • 角度(かくど)がいくら変化(へんか)しても、点(てん) P は、半径(はんけい) 1 の円周上(えんしゅうじょう)になる。
  • そのため、sin サインと cos コサインでえられる値(あたい)は、「-11」の間(あいだ)でくりかえす。

()のsin()のcos() にはいるのが、角度(かくど)です。sin サインと cos コサイン は、() の値(あたい)をつかって、点(てん) P の座標(ざひょう)を計算(けいさん)します。

  • ()のcos:x 座標(ざひょう)
  • ()のsin:y 座標(ざひょう)
かくどと、サイン・コサインのかんけい
かくどと、サイン・コサインのかんけい

たとえば角度(かくど)が 90 の場合(ばあい)、点(てん) P の x 座標(ざひょう)は 0、y 座標(ざひょう)は 1 です。() におなじ値(あたい)をいれても、()のsin()のcos ではことなる結果(けっか)になる、ということがわかりますね。

さて、sin サインと cos コサインでえられる「-11」は、とてもちいさい値(あたい)です。そのままつかうと、値(あたい)が変化(へんか)している様子(ようす)が、よくわかりません。そのため、実際(じっさい)につかうときは、数値(すうち)をかけて値(あたい)をおおきくしてからつかいます。

サイン・コサインのれい③
サイン・コサインのれい③

以上(いじょう)で、sin サインと cos コサインについての説明(せつめい)はおわりです。簡単(かんたん)にポイントをまとめておきましょう。

  • sin サインと cos コサインは、() の値(あたい)におうじて、「-11」の周期的(しゅうきてき)な値(あたい)となる。
  • つかうときは、数値(すうち)をかけて、適当(てきとう)なおおきさの値(あたい)になるようにする。

次(つぎ)のセクションからは、sin サイン・cos コサインをつかったスクリプトを紹介(しょうかい)していきます。

ぐるぐるとうごかす

円(えん)をえがくように、キャラクターをぐるぐるとうごかしてみましょう。

sin サインと cos コサインの結果(けっか)に 100 をかけて、半径(はんけい) 100 の円(えん)をえがくように座標(ざひょう)を変化(へんか)させます。

xざひょうとyざひょうを、はんけい100のコサイン・サインにする
xざひょうとyざひょうを、はんけい100のコサイン・サインにする

() にはいる値(あたい)は、変数(へんすう)をつかってすこしずつ変化(へんか)するようにしましょう。

かくどを1ずつかえる
かくどを1ずつかえる

これで、キャラクターがぐるぐるとうごくようになりました!どのようにうごいているのかをわかりやすくするためにペンをつかってみると、下(した)のようになります。

うごいたあとをペンでえがく
うごいたあとをペンでえがく

上(うえ)のスクリプトでは、左(ひだり)まわりでうごきます。x 座標(ざひょう)と y 座標(ざひょう)の sin サインと cos コサインを逆(ぎゃく)にすると、右(みぎ)まわりでうごきます。

みぎまわりでうごきつづける
みぎまわりでうごきつづける

うごきだしの位置(いち)をきめたい場合(ばあい)は、角度(かくど)を初期化(しょきか)しておきましょう。

かくど0のいち、みぎがわからうごきはじめる
かくど0のいち、みぎがわからうごきはじめる

うごきをはやくする

さきほどの例(れい)では、角度(かくど)が 1 ずつかわっていくようにしたので、キャラクターのうごきはゆっくりです。うごくスピードをはやくしたい場合(ばあい)は、 sin サイン・cos コサインの () にはいる値(あたい)をおおきくします。

() の値(あたい)に数値(すうち)をかける、または変数(へんすう)の変化(へんか)をおおきくしましょう。

()のあたいに5をかける
()のあたいに5をかける
かくどを5ずつかえる
かくどを5ずつかえる

タイマーでうごかす

角度(かくど)の変数(へんすう)を用意(ようい)せずに、タイマーをつかってうごかすこともできます。

ただし、タイマーはミリ秒(びょう)単位(たんい)でうごいていて、そのままではうごきの変化(へんか)がとてもおそいので、おおきめの数値(すうち)をかけてからつかいましょう。

「タイマーかける100」を()にいれる
「タイマーかける100」を()にいれる

楕円(だえん)にする

sin サインと cos コサインに、ことなる数値(すうち)をかけると、楕円(だえん)になります。

よこながのだえん
よこながのだえん
たてながのだえん
たてながのだえん

位置(いち)を指定(してい)する

基準(きじゅん)となる位置(いち)を指定(してい)したい場合(ばあい)は、◯ + ◯ をくみあわせます。

xざひょう0、yざひょう-50をちゅうしんにしたえん
xざひょう0、yざひょう-50をちゅうしんにしたえん
xざひょう80、yざひょう30をちゅうしんにしたえん
xざひょう80、yざひょう30をちゅうしんにしたえん

なめらかな移動(いどう)

y 座標(ざひょう)を固定(こてい)すると、x 座標(ざひょう)だけが変化(へんか)して、なめらかな横移動(よこいどう)をくりかえします。

  • うごくはやさ:5
  • 変化(へんか)の量(りょう):150
  • 基準(きじゅん)の位置(いち):指定(してい)していないので、x 座標(ざひょう) 0
-150〜150までのあいだで、さゆうへなめらかにうごく
-150〜150までのあいだで、さゆうへなめらかにうごく

x 座標(ざひょう)を固定すると、y 座標(ざひょう)だけが変化(へんか)して、なめらかな縦移動(たていどう)をくりかえします。

  • うごくはやさ:10
  • 変化(へんか)の量(りょう):80
  • 基準(きじゅん)の位置(いち):y 座標(ざひょう) -100
-180〜-20までのあいだで、じょうげへなめらかにうごく
-180〜-20までのあいだで、じょうげへなめらかにうごく

拡大(かくだい)・縮小(しゅくしょう)

sin サインまたは cos コサインで「おおきさ」をかえると、おおきくなったり、ちいさくなったりをくりかえします。記事(きじ)のはじめで紹介(しょうかい)したサンプルプロジェクトの星(ほし)のうごきがこれです。

  • うごくはやさ:タイマー × 100
  • 変化(へんか)の量(りょう):20
  • 基準(きじゅん)のおおきさ:80
60〜100までのあいだで、おおきさがへんかしつづける
60〜100までのあいだで、おおきさがへんかしつづける

ゆらゆらうごかす

sin サインまたは cos コサインで「むき」をかえると、ゆらゆらとうごきつづけます。記事(きじ)のはじめで紹介(しょうかい)したサンプルプロジェクトの船(ふね)のうごきがこれです。

  • うごくはやさ:タイマー × 250
  • 変化(へんか)の量(りょう):10
  • 基準(きじゅん)のむき:90
80〜100までのあいだで、むきがへんかしつづける
80〜100までのあいだで、むきがへんかしつづける

波(なみ)をえがく

sin サインまたは cos コサインで、波(なみ)をえがいてみましょう。

  • 波(なみ)のたかさとなる y 座標(ざひょう)の値(あたい)を、()のsin をつかって周期的(しゅうきてき)に変化(へんか)させます。
  • 同時(どうじ)に x 座標(ざひょう)をすこしずつかえて、波(なみ)の形(かたち)を右(みぎ)へすすめます。
サインでつくるなみのかたち①
サインでつくるなみのかたち①
  • ()のsin にかける数値(すうち)をおおきくして、変化(へんか)の量(りょう)をふやすと、波(なみ)がたかくなります。
  • ()のsin() にはいる値(あたい)の変化(へんか)をおおきくして、うごきをはやくすると、波(なみ)がこまかくなります。
サインでつくるなみのかたち②
サインでつくるなみのかたち②

いろいろな形(かたち)

sin サインと cos コサインで座標(ざひょう)を変化(へんか)させると、下(した)のような形(かたち)もつくることができます。

サインとコサインでつくるかたちのれい①
サインとコサインでつくるかたちのれい①
サインとコサインでつくるかたちのれい②
サインとコサインでつくるかたちのれい②

Scratch の Pyxofy ページへいって、()のsin()のcos をつかった作品(さくひん)をみてみてください。Scratch わくせいのきどう by Pyxofy

わくせいをサイン・コサインでうごかすスクラッチのアニメーション-25
わくせいをサイン・コサインでうごかすスクラッチのアニメーション

「きょうからはじめるスクラッチプログラミング入門」by Pyxofy

Pyxofy から Scratch の基本をまとめた電子書籍を出版しました。
Apple Books・Kindle でご購入ください。

特設ページはこちら

まとめ

今回(こんかい)は、Scratch のブロック、()のsin()のcos について紹介(しょうかい)しました。

sin サインと cos コサインをつかうと、周期的(しゅうきてき)な値(あたい)となるため、ぐるぐるとまわしたり、波(なみ)の形(かたち)をつくったり、なめらかにうごかしつづけることができます。 () にはいる値(あたい)や、かける数値(すうち)をかえてみると、いろいろなうごきをすることがわかるので、ぜひためしてみてください。

最後まで読んでいただき、ありがとうございます。この記事をシェアしてくれると嬉しいです!

SNS で Pyxofy とつながりましょう! LinkedInThreadsBlueskyMastodon X (Twitter) @pyxofyFacebook

関連記事

Scratch - Pyxofy
Scratch 3.0の使い方を、プログラミング初心者や子どもにも分かりやすく紹介しています。
JavaScript - お絵描きアプリの作り方【基本編】
HTML のキャンバス <canvas> と JavaScript でシンプルなお絵描きアプリを作ります。線の描画機能と消去ボタンのみの最低限のコードで、自由に描画するための基本的な方法を学びましょう。
CSS Art
Articles for creating CSS Art.
CSS Animation – Fade In and Out
Poof! Now you see it, now you don’t. Let’s learn how to make sophisticated fade effects and much more in this step-by-step article.