速さ・時間・距離の関係
「はじき」の公式で理解する、動くものの位置を計算する第一歩
- 1
- 距離 = 速さ × 時間 という関係式が、速さ・時間・距離のすべての問題の出発点になる
- 2
- 速さが一定(等速)のとき、距離は時間に比例するので、グラフに描くと原点を通る直線になる
- 3
- この考え方はゲームやアニメーションでキャラクターを1フレームごとに動かす計算(等速運動)にそのまま使われている
なぜこれを学ぶのか? — 現実社会とテクノロジーでの価値
なぜ生まれたのか?
距離 = 速さ × 時間 という関係式が、速さ・時間・距離のすべての問題の出発点になる
身につく武器・思考力
速さが一定(等速)のとき、距離は時間に比例するので、グラフに描くと原点を通る直線になる
実社会・ITでの活躍現場
- •ゲーム・アニメーションにおける等速移動(フレームごとの位置更新)
- •ITシステム・アルゴリズム実装における論理設計
- •データ分析やシミュレーションにおける数理モデリング
Layer 1 — 直感・シミュレーター
速さのスライダーを動かして「速さ」を決めてから、再生ボタンを押してみよう。時間の経過とともに点がコースの上を進み、「進んだ距離 = 速さ × 経過時間」がリアルタイムで表示される。速さを変えると、同じ時間でも進む距離がどう変わるかを目で確認できる。
↑ 速さのスライダーを変えてから「再生」を押すと、点がコース上を動き、経過時間 t にともなって進んだ距離 x = v × t がリアルタイムに計算される。経過時間のスライダーを直接動かして、任意の瞬間の位置を確かめることもできる。
時速4kmで歩く人が1時間30分歩いたとき、進んだ距離は何kmか?
Layer 2 — 定義・受験・証明
定義
物体が一定の速さ (単位時間あたりに進む距離)で動き続けるとき、時間 が経過した後に進んだ距離 は、次の関係式で表される(これを「はじき」の関係と呼ぶことがある:は=speed速さ, じ=時間, き=距離)。
この式は (速さ)と (時間)についても、それぞれ次のように変形できる。
公式・数理モデル
証明・導出
速さの定義そのものからの導出: 速さ とは「1単位時間あたりに進む距離」のことである。例えば km/時 ならば、1時間で4km進む。 では 時間経過すると何km進むか? 1時間で4km進むのだから、 時間では、その 倍の距離を進むはずである。
これを一般の速さ に置き換えると が得られる。 また、速さが一定(等速運動)である限り、 は に比例する( は の形の比例式であり、比例定数が速さ に対応する)。したがってグラフに描くと、原点 を通る傾き の直線になる。
押さえておきたいポイント
- 「はじき」の図(は・じ・き を三角形に並べる)は、3つの量のうち2つが分かれば残り1つが求まることを視覚的に覚える道具に過ぎない。本質は という比例関係
- 速さが一定なら、距離と時間の関係を表すグラフは原点を通る直線になり、傾きがそのまま速さを表す
- 速さの単位(km/時、m/秒など)は必ず時間と距離の単位をそろえてから計算する必要がある(例: 分を時間に直す)
- 速さが変化する運動(加速度運動)では は使えず、微分積分(integration-basics)を使ってより精密に計算する
本トピックの内容・数理モデルは、文部科学省学習指導要領(算数・数学・情報)および国際標準カリキュラムに準拠し、エンジニアリング現場の実装事例と照らし合わせてMath World Lab編集部により検証・作成されています。
Layer 3 — 工学応用・現場実装
ゲーム・アニメーションにおける等速移動(フレームごとの位置更新)
2Dゲームやアニメーションでキャラクターや弾を一定速度で動かす際、1フレームあたりの経過時間(デルタタイム)に速さを掛けて位置を毎フレーム更新する。これは x = v × t の考え方をそのままコンピュータのループ処理に応用したものである。
1type Vec2 = { x: number; y: number };23// 速さ一定(等速)でキャラクターを移動させるシンプルなゲームループ4class MovingCharacter {5 position: Vec2 = { x: 0, y: 0 };6 speed: number; // 1秒あたりに進む距離(px/秒)7 direction: Vec2; // 進行方向の単位ベクトル89 constructor(speed: number, direction: Vec2) {10 this.speed = speed;11 this.direction = direction;12 }1314 // 1フレームごとに呼び出す。deltaTime は前フレームからの経過秒数15 update(deltaTime: number): void {16 // 距離 = 速さ × 時間 (この1フレーム分の移動距離)17 const distance = this.speed * deltaTime;1819 this.position.x += this.direction.x * distance;20 this.position.y += this.direction.y * distance;21 }22}2324// 例: 秒速100pxで右方向に進むキャラクター25const hero = new MovingCharacter(100, { x: 1, y: 0 });2627// 60FPS想定 (1フレーム ≈ 0.0167秒) で3フレーム分シミュレーション28for (let frame = 0; frame < 3; frame++) {29 hero.update(1 / 60);30 console.log(`フレーム${frame}: x = ${hero.position.x.toFixed(2)}`);31}32// 経過時間 t = 3/60 = 0.05秒 のとき x ≈ 100 × 0.05 = 5.0 に収束する
前提知識なしでここから始められます!
次に学ぶならコレ!おすすめトピック
この単元と深い繋がりを持つ、あわせて学ぶと理解が深まるおすすめ単元