Discuss Scratch

hgpihe3746
Scratcher
11 posts

Scratch数学カフェ

わかりました。以後気をつけます。
kemo33oolong-2025x5G
Scratcher
41 posts

Scratch数学カフェ

#1165からです

kemo33oolong-2025x5G wrote:

予定としてゲームを作る者です。攻撃でビームランチャーのような一直線に放つ攻撃で、射角を算出するプログラムを作りたいです。弧度法と度数法両対応にしたいです。地面からマウスカーソルで撃ちたい向きまでの角度を算出して、表示するものです。イメージとしては▄︻┻┳═一∠ )x°のような感じです。教えてください(補足)地面に水平な角度を0、右斜め上60°なら60を返す。射角決定までキャラクターがいる地面の境界とマウスの点が作る角が表示される
やり方を教わって、射角を算出する所まではできたのですが、∠)x°の)の部分(以降弧とする)をペンで作図できません。
初期地点の座標と目的の座標までの弧を描画したいです。ペンをしようたある地点からある地点までの弧の描画を教えてください。

Last edited by kemo33oolong-2025x5G (July 6, 2026 10:30:04)

inoking
Scratcher
1000+ posts

Scratch数学カフェ

kemo33oolong-2025x5G wrote:

やり方を教わって、射角を算出する所まではできたのですが、∠)x°の)の部分(以降弧とする)をペンで作図できません。
初期地点の座標と目的の座標までの弧を描画したいです。ペンをしようたある地点からある地点までの弧の描画を教えてください。
弧は円の一部なので
円を描く処理を部分的に用いれば出来ます。

円の公式は原点座標を(X, Y)、半径を R とすると
一般的な座標系で表記した場合
・x = X + R * cos(θ)
・y = Y + R * sin(θ)
です(Scratch では y の方向と sin, cos を入れ替える必要あり)。

開始角度(水平?)から終了角度(射角)まで
θ でループを回すと描けるでしょう。
newmomizi_txt
Scratcher
1000+ posts

Scratch数学カフェ

#1181
2分探索以外の方法となると、こちらも近似式にはなりますが、マクローリン展開による多項式近似などでしょうか。
arcsin・arccos のマクローリン展開 | 高校数学の美しい物語
(GPUなどの三角関数演算も、多項式近似を用いていたはず)

ただし、精度よく計算するためには多少の工夫が必要です。

Last edited by newmomizi_txt (July 6, 2026 13:36:41)

kemo33oolong-2025x5G
Scratcher
41 posts

Scratch数学カフェ

#1185
ありがとうございます。
#1186
ありがとうございます。ただマクローリン展開を調べたら、微分と階乗と無限級数の収束(?)の再現と知識が必要になるそうだったので、今回は@inoking様のご意見(#1185)を参考にします。
ご協力ありがとうございました。

Last edited by kemo33oolong-2025x5G (July 6, 2026 21:09:51)

hgpihe3746
Scratcher
11 posts

Scratch数学カフェ

やっぱ近似式ですか、でも面白そうなのでやってみます! #1186ありがとうございます!
inoking
Scratcher
1000+ posts

Scratch数学カフェ

kemo33oolong-2025x5G wrote:

#1185
ありがとうございます。
#1186
ありがとうございます。ただマクローリン展開を調べたら、微分と階乗と無限級数の収束(?)の再現と知識が必要になるそうだったので、今回は@inoking様のご意見(#1185)を参考にします。
ご協力ありがとうございました。
あれ?
射角と弧の描画の件と、atan2 の再現の件は別ですよね。
近似式の話は後者で、#1185は前者です。
もちろん射角を近似式で求めてもいいのですが。、目的からすると atan を場合分け適用するのが素直ですから。
appstor1357
Scratcher
8 posts

Scratch数学カフェ

tanの有用な使い方って何がありますか。
sinやcosは言うまでもなく使いますし、atanも何気に追いかけたりするプログラムで使う場面があると思うのですが、tanはどういう場面で使えますか?
理屈はわかりますが場面がない
taNup0n
Scratcher
500+ posts

Scratch数学カフェ

appstor1357 wrote:

tanの有用な使い方って何がありますか。
sinやcosは言うまでもなく使いますし、atanも何気に追いかけたりするプログラムで使う場面があると思うのですが、tanはどういう場面で使えますか?
理屈はわかりますが場面がない
物の影などを描画したり、
壁のどの位置にぶつかるかを予測する、等の計算に役立つと思います。とはいえ、余り出番がないのはそれはそう。
scratchpurogu
Scratcher
6 posts

Scratch数学カフェ

Q.tanの有効な使い方はある?
A.あります。
 スプライトを指定の座標に向かせたい時に斜辺だけがわからないのでtanで計算するとできます。
inoking
Scratcher
1000+ posts

Scratch数学カフェ

scratchpurogu wrote:

スプライトを指定の座標に向かせたい時に斜辺だけがわからないのでtanで計算するとできます。
どういうことですか?
もっと具体的にお願いします。
taNup0n
Scratcher
500+ posts

Scratch数学カフェ

taNup0n wrote:

appstor1357 wrote:

tanの有用な使い方って何がありますか。
sinやcosは言うまでもなく使いますし、atanも何気に追いかけたりするプログラムで使う場面があると思うのですが、tanはどういう場面で使えますか?
理屈はわかりますが場面がない
物の影などを描画したり、
壁のどの位置にぶつかるかを予測する、等の計算に役立つと思います。とはいえ、余り出番がないのはそれはそう。
追記。
じっさいにそういう使い方しているプログラムです。
https://scratch.mit.edu/projects/713523099/

Last edited by taNup0n (July 31, 2026 18:17:57)

rikeikunn
Scratcher
8 posts

Scratch数学カフェ

任意精度演算を素材の正確性を確かめてほしいです!
https://turbowarp.org/1368000872/editor?turbo&fps=0
ZZzzzz_2012_11_15-3
Scratcher
29 posts

Scratch数学カフェ

これなんですが、一度質問コーナーで質問したのですが答えが帰ってこなくて…こっちの方が知っている人が多いんじゃないか?という期待を込めて質問します。
90°の時デフォルトの座標('がついてない方のリスト)で調整された位置関係を保ったまま、任意の角度をつけて移動させたいのですが、コスチュームに角度をつける,傾けた座標を調整する等以外に何か解決法はあるでしょうか?
できれば計算で座標を出したいです。
inoking
Scratcher
1000+ posts

Scratch数学カフェ

ZZzzzz_2012_11_15-3 wrote:

これなんですが、一度質問コーナーで質問したのですが答えが帰ってこなくて…こっちの方が知っている人が多いんじゃないか?という期待を込めて質問します。
90°の時デフォルトの座標('がついてない方のリスト)で調整された位置関係を保ったまま、任意の角度をつけて移動させたいのですが、コスチュームに角度をつける,傾けた座標を調整する等以外に何か解決法はあるでしょうか?
できれば計算で座標を出したいです。
質問コーナーで回答が付かないものをトピックを変えたところで同じです。
なぜ回答がなかったのかを考え直すべきでしょう。

実際、この投稿を読んでも何をしたいのかが私には分かりません。
もしコスチュームの画像を計算で回転させたいということであれば無理です。
リストに全座標が入っているのなら可能ですが。
ZZzzzz_2012_11_15-3
Scratcher
29 posts

Scratch数学カフェ

# 1195
確かに考えが浅く、説明も足りなかったし、かなり難しい、また大変だったかもしれません。
自分の構想については知らないから聞いてるので、出来ないことも知らなく対策が難しいですが、文については以後気をつけます。
そしてとりあえず諦めます。ご回答ありがとうございました。
Jinenjo_000
Scratcher
100+ posts

Scratch数学カフェ

#1197
リスト x, y, x2, y2 で定義されたボールペンの部品同士の位置関係を保ったまま、ボールペン全体を回転させたいのだと理解しました。
回転行列によって実現できます。
https://scratch.mit.edu/projects/1386632067/
inoking
Scratcher
1000+ posts

Scratch数学カフェ

Jinenjo_000 wrote:

リスト x, y, x2, y2 で定義されたボールペンの部品同士の位置関係を保ったまま、ボールペン全体を回転させたいのだと理解しました。
回転行列によって実現できます。
https://scratch.mit.edu/projects/1386632067/

元の質問には以下のようにあり

ZZzzzz_2012_11_15-3 wrote:

コスチュームに角度をつける,傾けた座標を調整する等以外
これをそのまま解釈すると「コスチュームを回さない前提」になると思います。
inoking
Scratcher
1000+ posts

Scratch数学カフェ

おそらく前提は
・各部品のコスチュームは原点に配置されている
・各部品の相対座標がリストにある
・実行時に各部品をクローンとして相対座標にしたがって配置する
このとき、全体を任意の角度をつけて移動させたい。ということですね。

「傾けた座標を調整する」のことかどうか分かりませんが、
原点に戻してから回してそれを移動するのも
Scratch では有用なアプローチだと思います。

定義で「画面を再描画せずに実行する」にすれば途中の移動は見えません。
定義 
go to x: (0) y: (0)
point in direction (角度 v)
go to x: (x) y: (y)

Powered by DjangoBB