自分のExcelはHSTACK関数を使用できないものだったので、スプレッドシートで行いましたが、動作しません… どこが間違っているでしょうか…?
おそらく、スプレッドシートとExcelの関数の書式・仕様が異なるのだと思われます。 スプレッドシートについては無知なので説明致せませんが、代わりにExcelでのHSTACK関数を使用しない式を考えました。
fbtofx、fbtofy、fbtofは速度の算出に必要なパラメータです。この内、fbtofは減速状態を維持するフレーム数に一致します。 文字数が圧倒的に少ないですね。前回の式がいかに無駄な計算を含んでいたかがよく分かります…
この方法ではx速度とy速度をそれぞれ3行ずつに配置することになるので、座標一覧を求める式が複雑になるかもしれません。 もしこの式も動作しなければ、さらに対策を考えます。
不適切なコンテンツとして通報するには以下の「送信」ボタンを押して下さい。 現在このグループでは通報を匿名で受け付けていません。 管理者グループにはあなたが誰であるかがわかります。
どのように不適切か説明したい場合、メッセージをご記入下さい。空白のままでも通報は送信されます。
通報履歴 で、あなたの通報と対応時のメッセージを確認できます。
おそらく、スプレッドシートとExcelの関数の書式・仕様が異なるのだと思われます。
スプレッドシートについては無知なので説明致せませんが、代わりにExcelでのHSTACK関数を使用しない式を考えました。
=FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1)
=IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0)
=MAX(fbtofx,fbtofy)
=初速×COS(RADIANS(発射角度))×SEQUENCE(1,直進フレーム数,,0)
=IF(SEQUENCE(1,fbtof)<fbtofx,MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))×(1-減速時空気抵抗)^SEQUENCE(1,fbtof),減速下限X速度×(1-減速時空気抵抗)^SEQUENCE(1,fbtof,1-fbtofx))
=IF(fbtof<fbtofx,MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))×(1-減速時空気抵抗)^fbtof,減速下限X速度×(1-減速時空気抵抗)^(fbtof-fbtofx))×(1-自由落下時空気抵抗)^SEQUENCE(1,50)
=初速×SIN(RADIANS(発射角度))×SEQUENCE(1,直進フレーム数,,0)
=IF(SEQUENCE(1,fbtof)<fbtofy,(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗)×(1-減速時空気抵抗)^SEQUENCE(1,fbtof)-減速時重力/減速時空気抵抗,(MIN(減速下限Y速度,初速×SIN(RADIANS(発射角度)))+減速時重力/減速時空気抵抗)×(1-減速時空気抵抗)^SEQUENCE(1,fbtof,1-fbtofy)-減速時重力/減速時空気抵抗)
=(IF(fbtof<fbtofy,(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗)×(1-減速時空気抵抗)^fbtof-減速時重力/減速時空気抵抗,(MIN(減速下限Y速度,初速×SIN(RADIANS(発射角度)))+減速時重力/減速時空気抵抗)×(1-減速時空気抵抗)^(fbtof-fbtofy)-減速時重力/減速時空気抵抗)+自由落下時重力/自由落下時空気抵抗)×(1-自由落下時空気抵抗)^SEQUENCE(1,50)-自由落下時重力/自由落下時空気抵抗
fbtofx、fbtofy、fbtofは速度の算出に必要なパラメータです。この内、fbtofは減速状態を維持するフレーム数に一致します。
文字数が圧倒的に少ないですね。前回の式がいかに無駄な計算を含んでいたかがよく分かります…
この方法ではx速度とy速度をそれぞれ3行ずつに配置することになるので、座標一覧を求める式が複雑になるかもしれません。
もしこの式も動作しなければ、さらに対策を考えます。