Discuss Scratch
- kemo33oolong-2025x5G
-
Scratcher
41 posts
Scratch数学カフェ
#1165からです
初期地点の座標と目的の座標までの弧を描画したいです。ペンをしようたある地点からある地点までの弧の描画を教えてください。
予定としてゲームを作る者です。攻撃でビームランチャーのような一直線に放つ攻撃で、射角を算出するプログラムを作りたいです。弧度法と度数法両対応にしたいです。地面からマウスカーソルで撃ちたい向きまでの角度を算出して、表示するものです。イメージとしては▄︻┻┳═一∠ )x°のような感じです。教えてください(補足)地面に水平な角度を0、右斜め上60°なら60を返す。射角決定までキャラクターがいる地面の境界とマウスの点が作る角が表示されるやり方を教わって、射角を算出する所まではできたのですが、∠)x°の)の部分(以降弧とする)をペンで作図できません。
初期地点の座標と目的の座標までの弧を描画したいです。ペンをしようたある地点からある地点までの弧の描画を教えてください。
Last edited by kemo33oolong-2025x5G (July 6, 2026 10:30:04)
- inoking
-
Scratcher
1000+ posts
Scratch数学カフェ
やり方を教わって、射角を算出する所まではできたのですが、∠)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などの三角関数演算も、多項式近似を用いていたはず)
ただし、精度よく計算するためには多少の工夫が必要です。
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)を参考にします。
ご協力ありがとうございました。
ありがとうございます。
#1186
ありがとうございます。ただマクローリン展開を調べたら、微分と階乗と無限級数の収束(?)の再現と知識が必要になるそうだったので、今回は@inoking様のご意見(#1185)を参考にします。
ご協力ありがとうございました。
Last edited by kemo33oolong-2025x5G (July 6, 2026 21:09:51)
- inoking
-
Scratcher
1000+ posts
Scratch数学カフェ
#1185あれ?
ありがとうございます。
#1186
ありがとうございます。ただマクローリン展開を調べたら、微分と階乗と無限級数の収束(?)の再現と知識が必要になるそうだったので、今回は@inoking様のご意見(#1185)を参考にします。
ご協力ありがとうございました。
射角と弧の描画の件と、atan2 の再現の件は別ですよね。
近似式の話は後者で、#1185は前者です。
もちろん射角を近似式で求めてもいいのですが。、目的からすると atan を場合分け適用するのが素直ですから。
- appstor1357
-
Scratcher
8 posts
Scratch数学カフェ
tanの有用な使い方って何がありますか。
sinやcosは言うまでもなく使いますし、atanも何気に追いかけたりするプログラムで使う場面があると思うのですが、tanはどういう場面で使えますか?
理屈はわかりますが場面がない
sinやcosは言うまでもなく使いますし、atanも何気に追いかけたりするプログラムで使う場面があると思うのですが、tanはどういう場面で使えますか?
理屈はわかりますが場面がない
- taNup0n
-
Scratcher
500+ posts
Scratch数学カフェ
tanの有用な使い方って何がありますか。物の影などを描画したり、
sinやcosは言うまでもなく使いますし、atanも何気に追いかけたりするプログラムで使う場面があると思うのですが、tanはどういう場面で使えますか?
理屈はわかりますが場面がない
壁のどの位置にぶつかるかを予測する、等の計算に役立つと思います。とはいえ、余り出番がないのはそれはそう。
- scratchpurogu
-
Scratcher
6 posts
Scratch数学カフェ
Q.tanの有効な使い方はある?
A.あります。
スプライトを指定の座標に向かせたい時に斜辺だけがわからないのでtanで計算するとできます。
A.あります。
スプライトを指定の座標に向かせたい時に斜辺だけがわからないのでtanで計算するとできます。
- inoking
-
Scratcher
1000+ posts
Scratch数学カフェ
スプライトを指定の座標に向かせたい時に斜辺だけがわからないのでtanで計算するとできます。どういうことですか?
もっと具体的にお願いします。
- taNup0n
-
Scratcher
500+ posts
Scratch数学カフェ
追記。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
https://turbowarp.org/1368000872/editor?turbo&fps=0
- ZZzzzz_2012_11_15-3
-
Scratcher
29 posts
Scratch数学カフェ
これなんですが、一度質問コーナーで質問したのですが答えが帰ってこなくて…こっちの方が知っている人が多いんじゃないか?という期待を込めて質問します。
90°の時デフォルトの座標('がついてない方のリスト)で調整された位置関係を保ったまま、任意の角度をつけて移動させたいのですが、コスチュームに角度をつける,傾けた座標を調整する等以外に何か解決法はあるでしょうか?
できれば計算で座標を出したいです。
90°の時デフォルトの座標('がついてない方のリスト)で調整された位置関係を保ったまま、任意の角度をつけて移動させたいのですが、コスチュームに角度をつける,傾けた座標を調整する等以外に何か解決法はあるでしょうか?
できれば計算で座標を出したいです。
- inoking
-
Scratcher
1000+ posts
Scratch数学カフェ
これなんですが、一度質問コーナーで質問したのですが答えが帰ってこなくて…こっちの方が知っている人が多いんじゃないか?という期待を込めて質問します。質問コーナーで回答が付かないものをトピックを変えたところで同じです。
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/
リスト x, y, x2, y2 で定義されたボールペンの部品同士の位置関係を保ったまま、ボールペン全体を回転させたいのだと理解しました。
回転行列によって実現できます。
https://scratch.mit.edu/projects/1386632067/
- inoking
-
Scratcher
1000+ posts
Scratch数学カフェ
リスト x, y, x2, y2 で定義されたボールペンの部品同士の位置関係を保ったまま、ボールペン全体を回転させたいのだと理解しました。
回転行列によって実現できます。
https://scratch.mit.edu/projects/1386632067/
元の質問には以下のようにあり
コスチュームに角度をつける,傾けた座標を調整する等以外これをそのまま解釈すると「コスチュームを回さない前提」になると思います。
- inoking
-
Scratcher
1000+ posts
Scratch数学カフェ
おそらく前提は
・各部品のコスチュームは原点に配置されている
・各部品の相対座標がリストにある
・実行時に各部品をクローンとして相対座標にしたがって配置する
このとき、全体を任意の角度をつけて移動させたい。ということですね。
「傾けた座標を調整する」のことかどうか分かりませんが、
原点に戻してから回してそれを移動するのも
Scratch では有用なアプローチだと思います。
定義で「画面を再描画せずに実行する」にすれば途中の移動は見えません。
・各部品のコスチュームは原点に配置されている
・各部品の相対座標がリストにある
・実行時に各部品をクローンとして相対座標にしたがって配置する
このとき、全体を任意の角度をつけて移動させたい。ということですね。
「傾けた座標を調整する」のことかどうか分かりませんが、
原点に戻してから回してそれを移動するのも
Scratch では有用なアプローチだと思います。
定義で「画面を再描画せずに実行する」にすれば途中の移動は見えません。
定義
go to x: (0) y: (0)
point in direction (角度 v)
go to x: (x) y: (y)