小编use*_*677的帖子

修改Android .aar文件的内容/转换为.zip格式

所以我有一个.aar文件,它有一个我需要从里面删除的文件.

我在mac上运行并将扩展名从.aar更改为.zip并解压缩了zip文件.然后我从文件夹中删除了文件,将其重新压缩回.zip,然后尝试将扩展名从.zip更改回.aar.

问题是现在修改的.aar不被识别为.aar文件.它仍然被注册为.zip,我不能再在我的项目中使用它了.

所以我的问题有两个:

1)如何轻松修改.aar文件的内容和2)如何正确转换为.aar和.zip?

zip android binaryfiles android-studio aar

30
推荐指数
2
解决办法
1万
查看次数

在d3中设置id问题

所以这就是我正在做的事情:

selection = canvas.selectAll("circle").data(mydata)

            selection.enter().append("circle")

            selection
                .attr("id", function(d, i){ var result = i+''; return result; })
Run Code Online (Sandbox Code Playgroud)

简而言之,我试图将每个元素的id设置为其索引的字符串表示.

但是,当我稍后尝试通过使用d3.select("#1")或使用数字变量i 来访问该特定元素时d3.select("#" + i.toString()),似乎没有任何工作.

我究竟做错了什么?

javascript casting d3.js

20
推荐指数
1
解决办法
2万
查看次数

获取有效的JNIEnv指针

我有一个C++ DLL,我想通过将函数导出到C#来在Unity中使用.Unity项目在Android设备上运行,C++代码使用java.要初始化C++,我需要先调用以下函数:

void api_initialize(JNIEnv* env, jobject* app_context, jobject* class_loader) {

    JavaVM* vm = nullptr;
    env->GetJavaVM(&vm);
    if (!vm) {
      return;
    }

    //Do other proprietary things
}
Run Code Online (Sandbox Code Playgroud)

在Unity中,我有以下导出的Dll函数

    [DllImport (dllName)]
    private static extern void api_initialize (IntPtr java_env, IntPtr app_context, IntPtr class_loader);
Run Code Online (Sandbox Code Playgroud)

我的问题是如何在我的C#类中获取JNIEnv指针然后作为参数传递给此函数?

我不是这个API的创建者,也没有修改它的权限,所以我需要从JNIEnv获取JavaVM,而不是相反.

java dll java-native-interface android unity-game-engine

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

如何在C#Unity中使用带有2D数组的C结构

所以我有一个带有以下结构的C API

typedef struct mat4f_ { float m[4][4]; } mat4f;
Run Code Online (Sandbox Code Playgroud)

它作为参数传递给我的一个API函数:

void myFunction(const mat4f matrix);
Run Code Online (Sandbox Code Playgroud)

我使用dll将此函数导出到Unity中的C#:

[DllImport ("mylib")] 
private static extern void myFunction(mat4f matrix);
Run Code Online (Sandbox Code Playgroud)

我的问题是,我应该如何制作相应的C#结构?

现在我有以下内容:

[StructLayout(LayoutKind.Sequential)]
public struct mat4f
{
    public float[,] m;
}
Run Code Online (Sandbox Code Playgroud)

并使用try尝试使用如下函数:

//Just make an identity matrix
mat4f matrix; 
matrix.m = new float[4, 4] { { 1, 0, 0, 0 }, { 0, 1, 0, 0 }, { 0, 0, 1, 0 }, { 0, 0, 0, 1 } };

myFunction(matrix); //Call dll function
Run Code Online (Sandbox Code Playgroud)

这是正确的做法吗?有一个更好的方法吗?

c c# dll struct unity-game-engine

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

Mac OSX Lion/X11/CImg库

所以我试图将CImg图像写入库合并到我的XCode项目中但是,该库的头文件包含以下include和XCode给出此错误警告:

#include <X11/Xlib.h>  Error: File not found
Run Code Online (Sandbox Code Playgroud)

我的笔记本电脑正在运行OSX Lion 10.8.2,显然苹果为Lion取走了X11,所以我去了这个网站并下载了XQuartz,因为这就是它在Apple支持页面上所说的.

因此,在安装之后,我重新启动了我的计算机并尝试运行我的XCode项目,但我仍然得到相同的错误.

所以我不确定我现在应该做些什么来解决这个问题.如果我在Finder中搜索"XLib.h",它会出现,我有一个名为X11的文件夹,它也会出现在我的查找器中,所以我觉得我可能有我需要但我无法理解的东西.

x11 macos xcode osx-lion

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

平衡 KD 树:哪种方法更有效?

我正在尝试使用 KD 树来平衡一组 (Million +) 3D 点,我有两种方法可以做到。

方式一:

  1. 使用 O(n) 算法沿给定轴查找数组大小/第 2 个最大元素并将其存储在当前节点

  2. 迭代向量中的所有元素,对于每个元素,将它们与我刚刚找到的元素进行比较,并将较小的放在 newArray1 中,将较大的放在 newArray2 中

  3. 递归

方式二:

  1. 使用快速排序 O(nlogn) 沿给定轴对数组中的所有元素进行排序,获取位置 arraysize/2 的元素并将其存储在当前节点中。

  2. 然后将索引 0 到 arraysize/2-1 的所有元素放入 newArray1,将 arraysize/2 到 arraysize-1 的所有元素放入 newArray2

  3. 递归

方式 2 看起来更“优雅”,但方式 1 似乎更快,因为中位数搜索和迭代都是 O(n),所以我得到 O(2n),它只是减少到 O(n)。但同时,即使方式2是O(nlogn)的排序时间,将数组拆分为2可以在恒定时间内完成,但这是否弥补了O(nlogn)的排序时间?

我该怎么办?或者有没有更好的方法来做到这一点,我什至没有看到?

sorting algorithm tree performance kdtree

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

声明具有多个字段的javascript数组

所以我想声明一个包含多个字段的javascript数组.

例如,我知道你可以做类似的事情

var data = [
{
    "field one": "a",
    "field two": "b",
},
{  
    "field one": "c",
    "field two": "d",
}
]
Run Code Online (Sandbox Code Playgroud)

但是,我不知道是否动态创建这样的数组,因此我不必在声明时初始化字段.

javascript arrays variables initialization

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

使用OpenGL写入图像文件

我只是好奇是否有办法使用OpenGL将像素数据写入外部JPEG/PNG /其他一些图像文件类型(如果还不存在,还创建一个图像来写入数据).我真的找不到关于这个问题的任何内容.我的程序根本没有真正使用openGL,我只需要能够写出图像的东西.

c++ opengl graphics image

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

将背景颜色设置为纹理

所以在openGL中,当我调用glClearColor()时,有没有办法将背景颜色设置为纹理而不是将其设置为静态颜色?或者除了glClearColor()之外还有另一种方法吗?

opengl graphics background colors

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

在if语句中使用浮点数的奇怪错误

所以在我的C++代码中,我有以下代码行用于调试目的:

if(float1 != float2)
{
    std::cout<<float1<<" "<<float2<<std::endl;
}
Run Code Online (Sandbox Code Playgroud)

发生的事情是程序正在进入if语句......但是当我打印出两个浮点值时它们是相同的.但如果它们是相同的,那么它应该完全绕过这个if语句.所以我真的很困惑为什么会发生这种情况.

c++ printing floating-point if-statement cout

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