【エクセルVBA】初期速度、放射角度から放物線を計算する方法!

こんにちは、ヒガシです。

 

このページではエクセルVBAを使って、以下の図に示すように、物体の初期速度と放射角度から放物線を計算する方法をご紹介していきます。

初期速度、角度から放物線を計算するという概要図

 

初期条件を設定するだけで簡単に計算できるようになっていますので、ぜひご活用ください。

 

それではさっそくやっていきましょう!

 

※今回の計算は空気抵抗等は一切考慮しない計算になっています。あらかじめご了承ください。

 

スポンサーリンク

物体の放物線を計算するサンプルコード

いきなりですが、本題である物体放物線を計算するサンプルコードをご紹介します。

Sub calc_parabola()
    Dim Vini As Single, Angle As Single
    Dim G_accele As Single
    Dim total_time As Single, dt As Single
    Dim data_num As Integer
    '初期速度、発射角度、計算時間を指定
    Vini = 10
    Angle = 45
    total_time = 1.5
    '重力加速度、計算刻み時間を指定
    G_accele = -9.8
    dt = 0.1
    '放物線計算処理
    pi_v = WorksheetFunction.Pi
    Vinix = Vini * Cos(2 * pi_v * Angle / 360)
    Viniy = Vini * Sin(2 * pi_v * Angle / 360)
    data_num = total_time / dt
    Cells(1, 1) = "TIME"
    Cells(1, 2) = "X"
    Cells(1, 3) = "Y"
    For i = 0 To data_num
        time_v = i * dt
        Cells(2 + i, 1) = time_v
        Cells(2 + i, 2) = Vinix * time_v
        Cells(2 + i, 3) = Viniy * time_v + 1 / 2 * G_accele * time_v * time_v
    Next
End Sub

 

あなたがやるべきことは6~12行目の初期条件や計算条件を決めてあげるだけでOKです。

 

スポンサーリンク

サンプルコードの実行結果確認

それでは先ほどのサンプルコードを実行してみます。

※強制的にシート上の情報を書き換えますので、何も作業をしていないシート上にて実行してください。

 

以下がその結果です。

サンプルコードの実行結果

何かしらデータが記述されていますね。

これが各時刻におけるX座標とY座標の履歴です。

 

念のためグラフ化してどんなデータか確認してみましょう。

サンプルコードの実行結果をグラフ化した様子

いい感じに放物線ができていますね。

 

スポンサーリンク

初期条件を変更して実行した結果

それでは先ほどのコードの初期条件を書き換えて実行してみましょう。

以下で実行してみます。

Vini = 20
Angle = 30

以下の結果が得られました。

初期条件を変更してサンプルコードを実行した結果

初速を上げて滞空時間が長くなった結果、計算時間がたりなくなってますね。

 

このあたりはtotal_timeを増やすなりして対応してみると良いでしょう。

 

スポンサーリンク

おわりに

というわけで今回は、エクセルVBAをつかって初期速度、放射角度から物体の放物線を計算する方法をご紹介しました。

 

このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。

 

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。

⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。

↓ 応援ボタン

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

それではまた!

コメント

タイトルとURLをコピーしました