HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
1125
entecsin10解決


entec

リンク

2015/11/25(Wed) 19:04:52|NO.73269

スクリプト内でよくsin(正弦値)を見つけますが、まだ習ってないので、知りません。
だれかわかりやすく説明してください!
また、スクリプト内でどのようなときに使うのか教えてください!
お願いします



この記事に返信する


kanamaru

リンク

2015/11/25(Wed) 19:53:04|NO.73272

簡単にいうと、
原点中心半径1の円のグラフを考えた時のy座標を角度で表していると思ってください。
x座標を角度で表すcos、傾きを角度で表すtanもあります。
どういうときに使うかというと、角度で座標を表したい時です。



k

リンク

2015/11/25(Wed) 20:29:25|NO.73273

プログラミングでの三角関数はいろんな使い方があるけど
まずはsinとcos両方使って円を書いてみたりするとわかりやすいかも

a=0.0 repeat 314*2 a+=0.01 pset sin(a)*100+300,cos(a)*100+200 loop



kanamaru

リンク

2015/11/25(Wed) 20:43:17|NO.73276

簡単な公式も教えておきます。
sinx/cosx=tanx
cosx^2+sinx^2=1
1+tanx^2=1/cosx^2
1+1/tanx^2=1/sinx^2
なんで成り立つかというと、
まず1番目。傾きの定義より。
2番目は三平方の定理より。
3番目は2番目を両辺cosx^2で割る。
4番目は2番目を両辺sinx^2で割る。
後はなんか公式あったっけ?



kanamaru

リンク

2015/11/25(Wed) 21:18:06|NO.73277

他にもありました。
加法定理
2倍角の公式
3倍角の公式
積和公式
和積公式
など。
これらは特にプログラミングでは使わないと思います。



KA

リンク

2015/11/25(Wed) 21:47:27|NO.73278

直角三角形の角度から辺の比を求める関数です。

極座標と直交座標の相互変換などに使います。



GENKI

リンク

2015/11/25(Wed) 22:03:17|NO.73279

数学の先生に質問すると喜々として教えてくれると思いますが…やっぱり嫌ですよね。

entecさんは今なん年生でしょうか?中学?高校?
教えるにしても、これでだいぶ教え方が変わってきます。

sinを学習するのは「三角関数」の中で学習します。
三角関数は高校の数学IIで学習する範囲です。

ここに至るまでの範囲をすっ飛ばしての説明になるので、まずどこまで学習したのかがわからないと適切な説明は難しいです。


> また、スクリプト内でどのようなときに使うのか教えてください!
シューティングの弾幕とかってsin関数使ってそうな気がしますが、どうなんでしょう。
sin関数というか三角関数は結構色んな所で活用されています。
面積や体積、方向、距離を知るときにも利用することがありますし、図形を回転させたりにも使います。
たくさん重ねて音を作ることもあります。


> 簡単な公式も教えておきます。
意味は三角関数の入門系サイトを探すと載ってると思いますので探してみてください。
三角関数は図とセットで理解しないと理解が難しいし用途が見えてきません。
あ、それと基本的性質と加法定理覚えとけばほかはだいたい導出簡単なので公式はあんまり覚える必要ありません。ご安心を。



entec

リンク

2015/11/26(Thu) 06:34:20|NO.73285

まだ中学生です。
ただ、中高一貫なので、最近数学Iに入りました。
中間試験が終わったら、数学兇砲眛ると思います。
そこで習うのかな?
色々と説明していただきありがとうございます。
ただ、やっぱりよくわかりません。三角関数の入門系サイトでも探してみます。



GENKI

リンク

2015/11/27(Fri) 21:21:07|NO.73293

> 最近数学Iに入りました。
数学Iの次は数学Aに入ると思います。
Wikipediaの「数学 (教科)」の項目を見なおしてみたんですが、数学I「図形と計量」でも学ぶようです。
数学Iの教科書の目次に三角比とか正弦とかあると思います。
入門系サイトと教科書と両方使えばすぐにゲームに使える程度の理解は得られるとおもいます。

具体的使用例書いてみたのでこれも参考にどうぞ。

;角度初期値[度] deg = 0.0 ;ウィンドウ中心座標 ctx = ginfo_winx/2 cty = ginfo_winy/2 ;軌道の半径 rx = 100.0 ry = 50.0 ;描画する図形の半径寸法 r = 10 *main redraw 1 : await 16 : redraw 0 : color 255, 255, 255 : boxf : color : pos 0,0 ; 距離と角度から表示位置を計算 ;x方向半径rx、y方向半径ryの楕円軌道 x = rx * sin(deg2rad(deg)) y = ry * cos(deg2rad(deg)) ;度→ラジアンの変換サンプル ;mes "" + deg + "[度] = " + deg2rad(deg) + "[rad]" ;mes "" + deg + "[度] = " + (deg*M_PI/180) + "[rad]" ;deg2radの中身はこんな式 ;真ん中に平行移動 x += ctx y += cty ; 軌道 circle ctx - rx, cty - ry, ctx + rx, cty + ry, 0 ; 座標(x,y)に図形を描画 circle x-r, y-r, x+r, y+r ; 次の角度に移動 deg += 1.0 goto *main
そうでした。1つ説明が必要な点がありました。
sin命令等では角度は「ラジアン(rad)」という単位で指定します。「度」ではないので注意です。
変換は簡単で、deg2rad関数に「度」の数値を入れれば「ラジアン」で返してくれます。
なので使うときは「sin(deg2rad(度))」というように使います。


数学の学習内容をまじまじと眺めていたのですが、数学ってゲームに使える内容ばっかりですね。
どの項目見てもゲームに使いうるものばかりでいまさらながらびっくりです。



kanamaru

リンク

2015/11/27(Fri) 21:47:47|NO.73296

ラジアンは、l=Rθで扇形の周の長さが求められるように定めた角度の表し方です。
2πが360度になります。
普段使っている角度を180で割ってπをかければラジアンに変換できます。
逆に、ラジアンをπで割って、180をかければ普段の角度に変換できます。
わかりにくいと思うので、いくつか例を。
2π 360
π 180
π/3 60
π/6 30
右側が普段の角度です。



entec

リンク

2015/11/28(Sat) 18:26:31|NO.73313

教科書にありました!
GENKIさんのスクリプトなども参考にしながら、理解していこうと思います。



ONION software Copyright 1997-2021(c) All rights reserved.