RTS支持鏡頭Y軸旋轉(zhuǎn)的圈選框 (偽矩陣版)
這里的偽矩陣是借助Unity的Transform(實(shí)質(zhì)是一個(gè)矩陣)進(jìn)行簡(jiǎn)單的角度變換而實(shí)現(xiàn)矩陣功能。
這兩天有空可能會(huì)安排一下矩陣版,主要是這個(gè)就是一個(gè)簡(jiǎn)單的旋轉(zhuǎn)坐標(biāo)系,不說(shuō)是大材小用,只能說(shuō)為了這個(gè)功能學(xué)矩陣不值得,線代和離散用真有用,學(xué)真頭疼。

上文

start - end的運(yùn)算可以認(rèn)為是求平行線的距離,而坐標(biāo)軸的在這個(gè)運(yùn)算中存在意義是固定一個(gè)x到f(x)的對(duì)應(yīng)關(guān)系f。
這個(gè)對(duì)應(yīng)關(guān)系與平移和旋轉(zhuǎn)有關(guān),比如使用 y=x ,即 y = tan(45°) x 輸入值 + cos(45°) x 0:
當(dāng) y=x 作為x軸,這個(gè)坐標(biāo)系的 y = 1 直線即 1 = cos(45°)*輸入值,可求得輸入值為根2。
在標(biāo)準(zhǔn)坐標(biāo)系的函數(shù)為 y = x + 根2。

在使用 y=x 為x軸的坐標(biāo)系中,y = x + 根2 被映射為了 y = 1,可以輕松求得其與y = 0 (標(biāo)準(zhǔn)坐標(biāo)系的 y = x)的距離。

還是這張圖,Start與End之所以能直接計(jì)算藍(lán)色矩形的寬高,是因?yàn)樗麄兊淖鴺?biāo)(x1, y1)和(x2, y2)受益于Start和End延伸出來(lái)的直線適配坐標(biāo)軸的映射規(guī)則:y = tan(0°) x 輸入值
當(dāng)鏡頭旋轉(zhuǎn),我們期望的延伸方向隨鏡頭變化,標(biāo)準(zhǔn)世界坐標(biāo)系就不能匹配運(yùn)算了。


這里的解決方案是讓坐標(biāo)系帶著點(diǎn)旋轉(zhuǎn)
我們這里的旋轉(zhuǎn)同時(shí)改變了Start和End點(diǎn)的位置,center點(diǎn)不再準(zhǔn)確,但是之前的數(shù)據(jù)就能得出center。
旋轉(zhuǎn)不變