追記:アスタリスクが表示できなかったので、×に置き換えました。申し訳ございません。
Excel上で動作する、フレーム毎のx速度とy速度を求める式を作成しました。
「速度=1フレーム間に進む距離」であるため、1フレーム目からnフレーム目までの速度の合計を発射位置に加算すると、nフレーム目の座標に等しくなります。
文字数制限に引っかかったので、2コメントに分けて掲載します。
=HSTACK(初速×COS(RADIANS(発射角度))×SEQUENCE(1,直進フレーム数,,0),IF(SEQUENCE(1,MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0)))<FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))×(1-減速時空気抵抗)^SEQUENCE(1,MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0))),減速下限X速度×(1-減速時空気抵抗)^SEQUENCE(1,MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0)),1-FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1))),IF(MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0))<FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))×(1-減速時空気抵抗)^MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0)),減速下限X速度×(1-減速時空気抵抗)^(MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0))-FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1)))×(1-自由落下時空気抵抗)^SEQUENCE(1,50))
これらの式は、一つのセルに入力することでフレーム毎の速度一覧を1行にずらっと並べます。
これらの式を入力したセルの右1行に、空白でないセルが一つでもあると動作しません。
また、これらの式はこのままでは動作しないため、「初速」「減速時最大速度」「直進フレーム数」「発射角度」「減速下限X速度」「減速下限Y速度」「減速時空気抵抗」「減速時重力」「自由落下時空気抵抗」「自由落下時重力」をセル参照に書き換える必要があります。
地道に書き換えようとすると尋常ならざる労力が要りますが、「すべて置換」機能を使うことですぐに完了させることができます。
pc版ではCtrl+H、スマホ版では上の虫眼鏡アイコン→左上の歯車アイコン→「検索とすべて置換」を選択してください。上の欄に置き換えたい文字列、下の欄に置き換える文字列を入力することで簡単に書き換えられます。
=HSTACK(初速×SIN(RADIANS(発射角度))×SEQUENCE(1,直進フレーム数,,0),IF(SEQUENCE(1,MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0)))<IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0),(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗)×(1-減速時空気抵抗)^SEQUENCE(1,MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0)))-減速時重力/減速時空気抵抗,(MIN(減速下限Y速度,初速×SIN(RADIANS(発射角度)))+減速時重力/減速時空気抵抗)×(1-減速時空気抵抗)^SEQUENCE(1,MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0)),1-IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0))-減速時重力/減速時空気抵抗),(IF(MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0))<IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0),(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗)×(1-減速時空気抵抗)^MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0))-減速時重力/減速時空気抵抗,(MIN(減速下限Y速度,初速×SIN(RADIANS(発射角度)))+減速時重力/減速時空気抵抗)×(1-減速時空気抵抗)^(MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0))-IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0))-減速時重力/減速時空気抵抗)+自由落下時重力/自由落下時空気抵抗)×(1-自由落下時空気抵抗)^SEQUENCE(1,50)-自由落下時重力/自由落下時空気抵抗)