小编Cla*_*dia的帖子

Objective-C要传递给C函数的选择器指针

我有一个包含函数指针的C结构.现在,我在C中使用了这个设置没有问题,但现在我在Objective-C中使用这个C结构,我需要传递一个在Objective-C类中定义的函数(或选择器)指针.

1.这是我对Objective-C选择器所需要的,它需要作为指向C函数的指针传递:

- (void)myObjCSelector:(int*)myIntArray
{
    // Do whatever I need with myIntArray
}
Run Code Online (Sandbox Code Playgroud)

2,这里是我碰壁,在Objective-C的我想选择通过作为指针到C函数调用:在地方的" myObjCSelectorPointer "我需要正确的语法通过选择作为这个C函数调用中的函数指针:

passObjCSelectorPointerToCContext(cContextReference, myObjCSelectorPointer);
Run Code Online (Sandbox Code Playgroud)

我确实调查了这个问题,但主要可以找到几种不同的方法来做类似的事情,但我找不到任何特定的调用C函数和传递Objective-C选择器指针.

c pointers function-pointers objective-c

16
推荐指数
1
解决办法
4436
查看次数

从JNI/NDK返回从C到Java的2D原始数组

我已经找到了大量关于如何在JNI中生成2D原始数组并将其返回给Java的文档.但是这些信息无法描述如何在C中给出上下文传递已经存在的 2D浮点数组(float**).

为了明确地描述我的问题,我将添加一些我想要实现的C伪代码:

// Returns a 2D float array from C to Java
jfloatArray ndk_test_getMy2DArray(JNIEnv* env, jobject thiz, jlong context)
{
    // Cast my context reference
    MyContextRef contextRef = (MyContextRef) context;

    // In case we need it below
    unsigned int length = MyContextGet1DLength(contextRef);

    // Get the 2D Array we want to "Cast"
    float** primitive2DArray = MyContextGet2DArray(contextRef);

    // Hokus pokus...
    // We do something to create the returnable data to Java
    //
    // Below is the …
Run Code Online (Sandbox Code Playgroud)

c java java-native-interface multidimensional-array android-ndk

9
推荐指数
1
解决办法
7552
查看次数

OpenGL ES 2(iOS)变形/两组顶点之间的动画

我有两组顶点用作线条:

  1. Vertexes1
  2. Vertexes2

重要的是要知道这些顶点具有先前未知的值,因为它们是动态的.

我想在这两者之间进行动画过渡(变形).我想出了两种不同的方法:

选项1:

在顶点着色器中设置一个时间均匀,从0到1,我可以这样做:

// Inside main() in the vertex shader
float originX = Position.x;
float destinationX = DestinationVertexPosition.x;
float interpolatedX = originX + (destinationX - originX) * Time;

gl_Position.x = interpolatedX;
Run Code Online (Sandbox Code Playgroud)

正如您可能看到的,这有一个问题:如何在那里获得"DestinationVertexPosition"

选项2:

在顶点着色器之外进行插值计算,我遍历每个顶点并为插值创建第三个顶点集,并使用它进行渲染:

// Pre render
// Use this vertex set to render
InterpolatedVertexes

for (unsigned int i = 0; i < vertexCount; i++) {
   float originX = Vertexes1[i].x;
   float destinationX = Vertexes2[i].x;
   float interpolatedX = originX + (destinationX - originX) …
Run Code Online (Sandbox Code Playgroud)

opengl-es vertex-shader ios opengl-es-2.0

3
推荐指数
1
解决办法
2337
查看次数

从点找圆圈中最远的点

我正在尝试找到从2D空间中的指定点获取圆的最远点的最佳方法.到目前为止,我发现的是如何获得点和圆位置之间的距离,但我不完全确定如何扩展它以找到圆的最远点.

已知变量是:

  • 点a
  • 点b(圆位置)
  • 半径r(圆半径)

为了找到点和圆位置之间的距离,我发现了这个:

xd = x2 - x1

yd = y2 - y1

距离= SquareRoot(xd*xd + yd*yd)

在我看来,这是解决方案的一部分.如何扩展以获得下图中的点x的位置?

这里以图形方式解释了这个问题. 期望的结果是点x的位置. 作为问题的一个附加但可选的部分:我已经在一些地方读过,可以在不使用平方根的情况下获得距离部分,这是非常高性能的,如果需要快速代码则应该避免.就我而言,我会经常做这个计算; 在主要问题的范围内对此提出的任何评论也会受到欢迎.

geometry

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