最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

三維斜拋運(yùn)動(dòng)定點(diǎn)打擊解算和unity實(shí)現(xiàn)

2023-05-18 20:43 作者:DeadCyber  | 我要投稿

思路概述

? ? 假設(shè)起點(diǎn)為source,目標(biāo)點(diǎn)為target,source以theta角度朝上拋出,求初速度M使得能夠正好落在target。

? ? 可以將問題分為2個(gè)部分。

????第1部分,求得“仰角”為theta的拋出方向ThrowDir。

????第2部分,解算求得初速度M。

????可以將運(yùn)動(dòng)劃分為2個(gè)部分。

????第1部分,從出發(fā)點(diǎn)開始到最高點(diǎn)結(jié)束。

????第2部分,從最高點(diǎn)開始到target結(jié)束。

拋射方向

我用chatGPT問的,然后改了一下bug。dir為target-source方向,angle為“仰角”


列關(guān)系式

設(shè)throwDir的xz平面分量大小為k1,垂直大小為k2。

設(shè)source和target的水平距離d1,垂直距離d2。

設(shè)h為第一階段垂直距離。

設(shè)第1階段用時(shí)t1,第2階段用時(shí)t2。

????關(guān)系1:t1*g=M*k2。因?yàn)橹皇苤亓?,垂直速度均勻降?

????關(guān)系2:h=M*k2*t-1/2*g*t^2。初中“公式”,其實(shí)是速度Mk2-gt積分來的。

????關(guān)系3:d2+h=1/2*g*t^2。同理初中“公式”,因?yàn)榈诙A段是從最高點(diǎn)0速度開始的。

????關(guān)系4:M*k1*(t1+t2) = d1。 水平方向是勻速運(yùn)動(dòng)。

公式見下圖,

由于貌似不能化簡(jiǎn)出簡(jiǎn)單方程,所以用二分法(我圖省事)解算方程。

以上圖波浪線的關(guān)系,也就是水平位移關(guān)系式做解方程f(x)=0。

即為f(M) = M*k1*(t1+t2) - d1 = 0,求零點(diǎn)。

f比較復(fù)雜:

整個(gè)變量初始化和解算:

二分法解方程代碼(設(shè)定了最多100000步,其實(shí)10來步error就<0.0001了):

迭代和終點(diǎn)問題

1.必須使用FixedUpdate

2.必須先speed+=a*dt,其次pos+=speed*dt

3.由于到終點(diǎn)速度過快,無法完全對(duì)準(zhǔn):


由于我的需求是完全對(duì)準(zhǔn),所以就硬set過去了,這點(diǎn)誤差對(duì)我的項(xiàng)目來說可以接受:

結(jié)束。

三維斜拋運(yùn)動(dòng)定點(diǎn)打擊解算和unity實(shí)現(xiàn)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
高州市| 云龙县| 勃利县| 富源县| 阳信县| 仙桃市| 建宁县| 贺兰县| 德钦县| 桃源县| 珲春市| 张北县| 呼图壁县| 潞城市| 萨嘎县| 广东省| 松原市| 滨州市| 南溪县| 虎林市| 西和县| 兴国县| 崇文区| 钟祥市| 张家川| 成武县| 克拉玛依市| 湟源县| 卓资县| 竹山县| 黔南| 南乐县| 庆阳市| 西宁市| 留坝县| 大石桥市| 綦江县| 甘德县| 海淀区| 错那县| 平安县|