多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > 使3D空間中物體朝向和其速度方向一致的旋轉矩陣計算方案

使3D空間中物體朝向和其速度方向一致的旋轉矩陣計算方案

來源:程序員人生   發布時間:2015-06-11 08:15:13 閱讀次數:3374次


在3D空間中的物體以某1速度運動,有時候需要這個物體的朝向和速度的方向1致,
為了實現這個目標我們1般借助旋轉矩陣 M 來將物體旋轉到對應的朝向。


例如速度方向矢量 spdV: Vector3D(1,2,3),
X軸基向量為 axis_x: Vector3D(1,0,0), 這個矢量的方向和3D物體不做任何旋轉時候的默許朝向1致
3D矢量 cross_x 記錄了 axis_x 叉乘 spdV 的結果.


算出矩陣 M 的方法1:
先計算出 spdV 和 axis_x 兩矢量之間的弧度值 rad(可用余弦函數計算), 然后用1個單位矩陣 m0,
讓 m0 繞 軸 cross_x 旋轉 rad, 就能夠得到結果矩陣 M 了


算出矩陣 M 的方法2(此方法計算進程簡潔,因此可以用在有些不能直接使用矩陣的地方例如有些Shader計算):
通過幾何算法直接算出 矩陣M 3個正交軸的基向量(axis_x,axis_y,axis_z)

如何計算呢? 請見下面的代碼:

<span style="white-space:pre"> </span>/** * 通過速度, 計算物體朝向矩陣的3個軸的數據 * */ public static function calcDirecMatByVelocity(spdv:Vector3D):Vector.<Vector3D> { // 記錄x軸的基向量 var axis_x:Vector3D = new Vector3D(1, 0, 0); // axis_x和spdv 叉乘 var cross_x:Vector3D = axis_x.crossProduct(spdv); // cross_x和spdv 叉乘,并將叉乘結果記錄在 MathCalc.outCrossV 這個3D矢量中,用這個函數是為了不產生新的3d矢量對象 MathCalc.crossV3D2(cross_x, spdv); cross_x.normalize(); MathCalc.outCrossV.normalize(); // cross_x.x = 0.5 * (cross_x.x + MathCalc.outCrossV.x); cross_x.y = 0.5 * (cross_x.y + MathCalc.outCrossV.y); cross_x.z = 0.5 * (cross_x.z + MathCalc.outCrossV.z); // 至此, 已計算出了 新的z軸 cross_x.normalize(); // 得到 新的 y軸 var axis_y:Vector3D = cross_x.crossProduct(spdv); axis_y.normalize(); // spdv 就是 新x 軸, 標準化 axis_x.setTo(spdv.x,spdv.y,spdv.z); axis_x.normalize(); // var vs:Vector.<Vector3D> = new Vector.<Vector3D>(); vs.push(axis_x,axis_y,cross_x); return vs; }

原理解釋:
首先, 旋轉矩陣 M 的X軸基向量axis_x,在空間上和spdV重合,因此spdV標準化了以后,就是X軸基向量axis_x
而 cross_x 這個旋轉軸 和 spdv 叉乘的結果MathCalc.outCrossV 是落在了 M 表示的空間的 YOZ 平面上, 
旋轉軸 cross_x 也落在 M 表示的空間的 YOZ 平面上。
而且 axis_z 在YOZ 平面上恰好就是 MathCalc.outCrossV 和 旋轉軸 cross_x 夾角的中分線,因此可以直接用計算
中點的方式直接算出 axis_z(z軸的基向量)
有了 axis_z, 由于3個基向量相互垂直,因此再通過叉乘計算出 axis_y
至此,得到了旋轉矩陣 M, 例如此算法可以用于 agal計算粒子的速度朝向

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 久久久久久久久毛片精品 | 欧美1卡一卡二卡三新区 | 日韩在线影视 | 在线观看欧美精品 | 久久久www成人免费精品 | 欧美aav| 毛片免费永久不卡视频观看 | 欧美精品 日韩 | 欧美18 - 19sex性| 美国毛片网 | 欧美人与牲动交xxxxbbbb | 久久精品一区二区三区日韩 | 69热在线观看 | 秋霞免费理论片在线观看午夜 | ww在线观视频免费观看 | 国产成人精品第一区二区 | 国产成人a v在线影院 | 最新中文字幕在线观看 | 中文字幕在线资源 | 91精品国产高清久久久久 | 成人免费看黄页网址大全 | 亚洲成a人片在线观看中文动漫 | 亚洲成人福利 | 亚洲欧美日韩国产综合高清 | 97精品伊人久久久大香线焦 | 淫片在线观看 | 在线观看h视频播放高清 | www.视频在线观看 | 一级毛片大全免费播放 | 久久精品5 | yellow中文字幕官网是什么 | 欧美成人一区亚洲一区 | xxxxx免费视频| 337p粉嫩日本大胆艺术 | 中文字幕乱码人成乱码在线视频 | 亚洲精品在线免费看 | 亚洲国产一级毛片 | 日本精品中文字幕 | 国产高清片 | 激情综合五月天丁香婷婷 | 成人在线观看免费爱爱 |