// 尤拉角
functioneuler
( x,y,
z,order )
euler
.rotationorders
= ['xyz'
,'yzx'
,'zxy'
,'xzy'
,'yxz'
,'zyx'];
euler
.defaultorder
='xyz'
;object.
defineproperties
(euler
.prototype,,
set:function( value ) },
y: ,set
:function( value ) },
z: ,set
:function( value ) },
order: ,
set:function( value )
}} );
object.
assign
(euler
.prototype,,
// 重新例項化物件 , 這裡巧妙的利用了 this.constructor
clone
:function()
,// 複製另外乙個 euler 物件的值
copy
:function( euler )
,// m : 是乙個4 * 4 的矩陣,,前面的 3*3矩陣必須是乙個旋轉矩陣,通過旋轉矩陣來控制旋轉。具體演算法可以參考
setfromrotationmatrix
:function( m
,order
,update )else
}else if( order ===
'yxz'
)else
}else if( order ===
'zxy'
)else
}else if( order ===
'zyx'
)else
}else if( order ===
'yzx'
)else
}else if( order ===
'xzy'
)else
}else
this.
_order
= order
;if( update !==false)this.
onchangecallback();
return this;},
setfromquaternion
:function()
;}()
,setfromvector3
:function( v
,order )
,reorder
:function()
;}()
,// 判斷兩個尤拉角是否完全相同
equals
:function( euler )
,// 設定尤拉角通過陣列賦值,,陣列可以省略order
fromarray
:function( array )
,// 轉化為陣列,,可以傳入陣列,並且返回該陣列,也可以不傳,,offset,,指從哪個位置開始賦值
toarray
:function( array
,offset )
,// 可以傳入乙個vector3,並且返回該verctor3,否則返回乙個新的vector3,傳入的是位址
tovector3
:function( optionalresult )else},
// 通過onchange 指定onchangecallback的函式結果
onchange
:function( callback )
,onchangecallback
:function() {}
} );
Spring原始碼解析之 Aop原始碼解析(2)
spring aop 更多的是oop開發模式的乙個補充,幫助oop以更好的方式來解決對於需要解決業務功能模組之上統一管理 的功能 以一副圖來做為aop功能的說明更直觀些。對於類似系統的安全檢查,系統日誌,事務管理等相關功能,物件導向的開發方法並沒有更好的解決方法 aop引入了一些概念。更多的是spr...
原始碼解析 JDK原始碼之LinkedHashMap
linkedhashmap原始碼,基於 jdk1.6.43 他繼承了hashmap,並且實現了插入和訪問的有序功能 public class linkedhashmapextends hashmapimplements map 其也有乙個entry內部類,繼承了 hashmap 的entry 內部類...
hive原始碼解析之語法解析
hive語法解析器是根據 上次分享的 詞法分析 生成的語法樹為基礎,進行語法解析。根據語法token的情況實現了五個具體的語法解析器。在你生成語法器的時候,semanticanalyze ctory分別針對不同的情況生成對應的某個語法器,如下 semanticanalyze ctory類 現在有五個...