jjzjj

SCNVector

全部标签

ios - Scene Kit 中铰链关节的奇怪摇晃

我正在尝试连接带炮塔的坦克,但由于这个连接整个模型都在摇晃,你知道是什么导致了这种行为吗?项目链接:Project我是这样写的:SCNNode*tankNode=[extraScene.rootNodechildNodeWithName:@"Main_Body"recursively:YES];[tankNodesetScale:SCNVector3Make(0.003,0.003,0.003)];[tankNodesetPosition:SCNVector3Make(0,1,0)];[tankNodesetPhysicsBody:[SCNPhysicsBodydynamicBody]

ios - 将 SCNNode 的枢轴设置为边界体积中心而不更改节点的位置

我正在寻找一种方法来将SCNNodes的枢轴(通过导入Collada文件获得)设置到它们的质心(或它们的边界框的中心)。我得到中心SCNVector3center;CGFloatradius;[nodegetBoundingSphereCenter:¢erradius:&radius];但是,当我尝试将节点的枢轴(它是一个4D向量,而不是中心的3D向量)设置为中心时,节点的位置也会发生变化。node.pivot=SCNMatrix4MakeTranslation(center.x,center.y,center.z);我怎样才能抵消这种运动-resp。我怎样才能只改变节点的枢轴

ios - 绕轴旋转 SCNVector3

这可能更像是一个线性代数问题,但假设我有一个SCNVector,我想要一个新的SCNVector,它围绕y轴(或与此相关的任何轴)与原始SCNVector成一定角度。所以理想情况下:extensionSCNVector3{//assumedot,cross,length,+,-functionsareavailable.enumAxis{casex,y,z}funcrotatedVector(aroundAxis:Axis,angle:Float)->SCNVector3{//codefromsmartpersongoeshere}}例如(0,0,-1).rotatedVector(a

ios - 球体上两点之间的圆柱方向,Scenekit,四元数 IOS

我一直在尝试使用SceneKit在球体外缘的两点之间绘制一个圆柱体。我已经使用原始几何图形和带有SCNRenderingDelegate的openGL在这两点之间生成了一条线,但是现在我需要在这两个点之间生成一个圆柱体(好吧,不仅仅是两个,而是位于球体表面的任意两个3D矢量).我已经为此连续工作了大约3天,并且我已经完成了我能找到的关于实现四元数的所有内容以实现这一点,但就目前而言,我无法让它工作。学术文章、科学研究,什么都没有,没有任何东西可以重新调整两个固定点之间的圆柱体。我需要一种算法来执行此操作。无论如何,这是我最近的代码,但它不起作用,但这只是我到目前为止已经完成的近2k行代

swift - SceneKit 自定义几何体产生 “double not supported”/“invalid vertex format” 运行时错误

我不明白下面的代码有什么问题:classTerrain{privateclassfunccreateGeometry()->SCNGeometry{letsources=[SCNGeometrySource(vertices:[SCNVector3(x:-1.0,y:-1.0,z:0.0),SCNVector3(x:-1.0,y:1.0,z:0.0),SCNVector3(x:1.0,y:1.0,z:0.0),SCNVector3(x:1.0,y:-1.0,z:0.0)],count:4),SCNGeometrySource(normals:[SCNVector3(x:0.0,y:0.

ios - 向右滑动时如何旋转到 3d 立方体的另一个面

我使用SceneKit创建了一个3d立方体,并添加了一个手势来识别向右滑动。但是,我不知道如何在向右滑动时将立方体旋转到另一个面。我不希望立方体在滑动时连续旋转,只移动到右侧的另一个面。抱歉造成任何混淆。这是我创建立方体的代码:importUIKitimportSceneKitclassViewController:UIViewController{//UI@IBOutletweakvargeometryLabel:UILabel!@IBOutletweakvarsceneView:SCNView!//GeometryvargeometryNode:SCNNode=SCNNode()/

swift - SceneKit 自定义几何形状未显示

我是Swift和SceneKit的新手,我目前的问题是我尝试创建的自定义形状没有显示,即使框架中的原始形状显示正常。我一直在关注https://www.raywenderlich.com/1261-scene-kit-tutorial-with-swift-part-1-getting-started的教程.我还查看了关于SO的答案:SceneKit–Customgeometrydoesnotshowup.我在这里查看了其他答案,但没有一个对我有用。这是我的代码:importUIKitimportSceneKitimportQuartzCoreclassGameViewControll

ios - SCNVector3 组件的类型是什么? CGFloat 还是 float ?

苹果文档给出了SCNVector3的声明:typedefstructSCNVector3{CGFloatx,y,z;}SCNVector3;或者在尝试编写重载函数时:func*(left:SCNVector3,right:CGFloat)->SCNVector3{returnSCNVector3Make(left.x*right,left.y*right,left.z*right)}我收到“无法使用类型参数列表调用''”错误。left.x、left.y和left.z不应该是CGfloat吗?如何以及何时决定CGFloat是double型还是浮点型? 最佳答案

ios - 使用 ARKit 的面部和相机之间的距离

有没有什么地方可以使用ARKit获取相机和人脸之间的距离? 最佳答案 我认为这可以通过使用ARFaceAnchor.leftEyeTransform和ARFaceAnchor.rightEyeTransform属性实现。一旦你有了这些,你就可以使用眼睛的worldPosition并减去相机的位置来获得眼睛到相机的大致距离,例如SCNVector3Zero。下面是一个非常粗略的例子,所有代码都被注释了,所以应该很容易理解://------------------------------//MARK:-SCNVector3Extensi

ios - 如何将相机坐标转换为场景坐标空间?

我试图在我制作的场景中找到相机的坐标,但我最终得到的是不同系统中的坐标。坐标如(0.0134094329550862,在场景坐标系中大约是1cm,同时移动不止于此。我这样做是为了获取坐标:letcameraCoordinates=self.sceneView.pointOfView?.worldPositionself.POSx=Double((cameraCoordinates?.x)!)self.POSy=Double((cameraCoordinates?.y)!)self.POSz=Double((cameraCoordinates?.z)!) 最佳