小编Pre*_*dea的帖子

圆柱体球体上两点之间的方向,Scenekit,Quaternions IOS

我一直在尝试使用SceneKit在球体外边缘的两个点之间绘制一个圆柱体.我已经使用原始几何和带有SCNRendering委托的openGL在这两个点之间产生了一条线,但现在我需要在这两个点之间产生一个圆柱体(好吧,不仅仅是两个,而是任何两个位于球体表面的三维矢量) ).我已经连续工作了大约3天了,我已经完成了实现四元数以实现这一切的所有内容,但就目前而言,我无法让它发挥作用.学术文章,科学研究,什么都没有,没有什么工作在两个固定点之间重新调整圆柱体.我需要一个算法来做到这一点.

无论如何,这是我最近的代码不起作用,但这只是我迄今为止所做的近2k行代码的一小段代码,没有预期的结果.我知道我可以转向更先进的东西,比如构建我自己的SCNProgram和/或SCNRenderer然后访问GLSL,OpenGL和Metal复杂性,但这看起来像是应该可以使用Scenekit并在GLKit向量结构与SCNVector之间进行转换结构,但到目前为止,这是不可能的:

码:

以下代码摄取经度和纬度坐标并将它们投影到3D球体的表面上.这些坐标是通过我构建的专有函数返回的,其中我收到了{x,y,z}坐标的SCNVector3,它在我的3D球体上准确显示.我在两组经度和纬度坐标之间绘制一条线,其中使用基元绘制的线穿过球体的中心.因此,正如我上面提到的,我想要相同的功能,但是使用圆柱体,而不是线条(顺便说一句,这里列出的经度和纬度坐标是虚假的,它们是随机生成的,但都落在地球表面).

drawLine = [self lat1:37.76830 lon1:-30.40096 height1:tall lat2:3.97620 lon2:63.73095 height2:tall];

float cylHeight = GLKVector3Distance(SCNVector3ToGLKVector3(cooridnateSetOne.position), SCNVector3ToGLKVector3(coordinateSetTwo.position));

SCNCylinder * cylTest = [SCNCylinder cylinderWithRadius:0.2 height:cylHeight];
SCNNode * test = [SCNNode nodeWithGeometry:cylTest];

SCNMaterial *material = [SCNMaterial material];
[[material diffuse] setContents:[SKColor whiteColor]];
material.diffuse.intensity = 60;
material.emission.contents = [SKColor whiteColor];

material.lightingModelName = SCNLightingModelConstant;
[cylTest setMaterials:@[material]];

GLKVector3 u = SCNVector3ToGLKVector3(cooridnateSetOne.position);
GLKVector3 v = SCNVector3ToGLKVector3(cooridnateSetTwo.position);

GLKVector3 w = GLKVector3CrossProduct(u, v);

GLKQuaternion q = GLKQuaternionMakeWithAngleAndVector3Axis(GLKVector3DotProduct(u,v), GLKVector3Normalize(w));
q.w += GLKQuaternionLength(q);
q = GLKQuaternionNormalize(q);
SCNVector4 final = …
Run Code Online (Sandbox Code Playgroud)

3d opengl-es objective-c ios scenekit

7
推荐指数
3
解决办法
3171
查看次数

带有 iOS 13 的 Facebook 登录工具包“canOpenURL:URL 失败:“fbauth2:///””

使用 iOS 12 的 Facebook 登录工具包工作正常,使用 iOS 13 的 Facebook 登录工具包不允许打开 fbauth2 网址。这已在此处得到验证:https : //forums.developer.apple.com/thread/117704

我已经通过在运行 iOS 13 的 iPhone 6s Plus 外部设备以及运行 iOS 12 和 iOS 13 的模拟器上尝试 FB 登录来验证了这一点。每个运行 iOS 13 的设备都无法打开 FB 网址。

有没有人解决这个问题?

facebook ios

5
推荐指数
1
解决办法
1514
查看次数

标签 统计

ios ×2

3d ×1

facebook ×1

objective-c ×1

opengl-es ×1

scenekit ×1