このWikiは古くなりました:
新しいWikiへ移動
坂とオブジェクトの接点
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
//#kaisou
[[Tonyu基礎練習]]-[[練習:数学と物理とゲーム]] - 三角関数...
**坂とオブジェクトの接点
次のような場合について考えてみましょう。
&ref(exampleSloop.png);
このような場合、どこでオブジェクトが坂と接しているのか...
sin関数とcos関数に関しては、 [[三角関数とは?]]のところ...
&ref(sincos.png);
これはsin(s)とcos(s)がどの部分の長さを示しているのかを...
&ref(exampleSloop2.png);
求めたいのは接している点です。上の図の通り、オブジェク...
円の中心(x,y)、半径が10の円の場合、22.5℃の坂に対する接点(...
<pre>
xx=x+10*sin(22.5);
yy=y+10*cos(22.5);
</pre>
となり、
<pre>
if ($map.getAt(x+10*sin(22.5),y+10*cos(22.5))!=$pat_Test+...
x+=2*sin(360-22.5);
y+=2*cos(360-22.5);
}
</pre>
のように設定してあげれば、スムーズに動きそうです。坂から...
&ref(exampleSloop3.png);
しかし、いつもオブジェクトが円形とは限りません。長方形...
しかし、これも円形同様に考えれば答えが出そうです。&br;
赤い線は円形の時と同じです。&br;
緑色の線を新たに足してあげれば前方の点における接点が求...
オブジェクトの中心が(x,y)、横の長さが20、縦の長さが10の画...
<pre>
a=x+5*sin(22.5)+10*cos(360-22.5);
b=y+5*cos(22.5)+10*sin(360-22.5);
</pre>
このようにして、ゲームに応用してゆけば、
<pre>
if ($map.getAt(x+5*sin(22.5)+10*cos(22.5),y+5*cos(22.5)+1...
x+=2*sin(360-22.5);
y+=2*cos(360-22.5);
}
</pre>
のように坂の上をオブジェクトがスムーズに移動するように...
**発展
<table bgcolor=#ffddee><tr><td>
''練習問題''
<blockquote>上の例で左側下方の接点を求め、判定を2点にしな...
sNieQW1EJqEFhAT7SDFs2l9kvcXofsK1151591112Rseov9df81r3m2nF...
sNieQW1EJqEFhAT7SDFs2l9kvcXofsK1151591110Rseov9df81r3m2n...
sNieQW1EJqEFhAT7SDFs2l9kvcXofsK1151591111Rseov9df81r3m2n...
sNieQW1EJqEFhAT7SDFs2l9kvcXofsK1151591113Rseov9df81r3m2nF...
</blockquote>
</td></tr></table>
[[答え>坂とオブジェクトの接点解答1]]
終了行:
//#kaisou
[[Tonyu基礎練習]]-[[練習:数学と物理とゲーム]] - 三角関数...
**坂とオブジェクトの接点
次のような場合について考えてみましょう。
&ref(exampleSloop.png);
このような場合、どこでオブジェクトが坂と接しているのか...
sin関数とcos関数に関しては、 [[三角関数とは?]]のところ...
&ref(sincos.png);
これはsin(s)とcos(s)がどの部分の長さを示しているのかを...
&ref(exampleSloop2.png);
求めたいのは接している点です。上の図の通り、オブジェク...
円の中心(x,y)、半径が10の円の場合、22.5℃の坂に対する接点(...
<pre>
xx=x+10*sin(22.5);
yy=y+10*cos(22.5);
</pre>
となり、
<pre>
if ($map.getAt(x+10*sin(22.5),y+10*cos(22.5))!=$pat_Test+...
x+=2*sin(360-22.5);
y+=2*cos(360-22.5);
}
</pre>
のように設定してあげれば、スムーズに動きそうです。坂から...
&ref(exampleSloop3.png);
しかし、いつもオブジェクトが円形とは限りません。長方形...
しかし、これも円形同様に考えれば答えが出そうです。&br;
赤い線は円形の時と同じです。&br;
緑色の線を新たに足してあげれば前方の点における接点が求...
オブジェクトの中心が(x,y)、横の長さが20、縦の長さが10の画...
<pre>
a=x+5*sin(22.5)+10*cos(360-22.5);
b=y+5*cos(22.5)+10*sin(360-22.5);
</pre>
このようにして、ゲームに応用してゆけば、
<pre>
if ($map.getAt(x+5*sin(22.5)+10*cos(22.5),y+5*cos(22.5)+1...
x+=2*sin(360-22.5);
y+=2*cos(360-22.5);
}
</pre>
のように坂の上をオブジェクトがスムーズに移動するように...
**発展
<table bgcolor=#ffddee><tr><td>
''練習問題''
<blockquote>上の例で左側下方の接点を求め、判定を2点にしな...
sNieQW1EJqEFhAT7SDFs2l9kvcXofsK1151591112Rseov9df81r3m2nF...
sNieQW1EJqEFhAT7SDFs2l9kvcXofsK1151591110Rseov9df81r3m2n...
sNieQW1EJqEFhAT7SDFs2l9kvcXofsK1151591111Rseov9df81r3m2n...
sNieQW1EJqEFhAT7SDFs2l9kvcXofsK1151591113Rseov9df81r3m2nF...
</blockquote>
</td></tr></table>
[[答え>坂とオブジェクトの接点解答1]]
ページ名: