SceneKit – SCNMatrix4中最低的元素行用于什么?

时间:2018-09-12 17:05:18

标签: swift scenekit augmented-reality arkit homogenous-transformation

SCNMatrix4结构中,最后一个m44元素用于同构坐标。

  

我想知道SCNMatrix4中的m41m42m43元素是什么?而我究竟可以将这三个元素用于什么呢?

init(m11: Float, m12: Float, m13: Float, m14: Float, 
     m21: Float, m22: Float, m23: Float, m24: Float, 
     m31: Float, m32: Float, m33: Float, m34: Float, 
     m41: Float, m42: Float, m43: Float, m44: Float)

enter image description here

2 个答案:

答案 0 :(得分:1)

我可能是错的,但是我认为m41m42m43可用于获取位置数据,并且在执行hitTest。

这样,通过执行result.worldTransform.columns.3放置SCNNode时,您可以使用以下任一方法:

ARSCNHitTest

下面的示例应有助于澄清问题:

let hitTestTransform = SCNMatrix4(result.worldTransform)
let positionFromMatrix4 = SCNVector3(hitTestTransform.m41, hitTestTransform.m42, hitTestTransform.m43)
let positionFromColumns =  SCNVector3(result.worldTransform.columns.3.x, result.worldTransform.columns.3.y, result.worldTransform.columns.3.z) 

希望有帮助...

答案 1 :(得分:1)

基于@BlackMirrorz的答案。

在使用SceneKit的相机投影时,会出现在m41中使用m42m43SCNMatrix4元素的明显实际好处。