问题标签 [bit-masks]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4082 浏览

python - 用原始图像opencv Python替换掩码

我正在尝试用原始图像像素替换我使用蒙版找到的对象。我有一个蒙版,在未检测到物体的地方显示黑色,如果检测到,则显示为白色。然后我在 where 语句中使用图像

我被困在这里,我不知道如何将找到的白色值更改为原始图像(与其他蒙版一起使用)。我试过image.shape了,但这没有用。

谢谢。

0 投票
1 回答
248 浏览

c++ - 我需要 C++ 中的无限位掩​​码

可跳过的上下文:我有一个模拟循环(使用固定更新但可变渲染模式),它实例化根据用户输入和/或文件配置从数百万个组件的数据库(容器的数据库)动态生成的类的实体状态修改模式)。

我已经实现了一个系统,该系统自动...推导(某种我不知道名称的逻辑单元/数学)并在用户输入/配置忽略他们的一个选项需要其他组件这一事实时应用所需的组件.

怎么会这样?许多组件是复杂的公式或模糊逻辑(门?)或其他复杂的科学推理,以可以操作我的模拟结构、对象、环境的方式编码,因此有时一个组件依赖于另一个组件,我需要'推演算法/系统'能够将该依赖传递给类构造函数。

我在决定存储这些“知识片段”的方式中使用了最大粒度,因为考虑到模拟的大小和计算强度以及单个实例的数量,我真的不能浪费任何内存,但现在我正在运行这个问题单个实例需要数千个,有时是数万个组件,我需要将实例的“创建映射”保存并仍然绑定为私有成员,这样我就可以:第一 - 知道我的推导在哪里引导实例的构造函数,也许能够使用记忆来减少构建时间;第二 - 在模拟期间实现对实时实例的更改注入¹。

我认为我需要的是:我需要一个可能无限或至少很长的位掩码,因此我可以更快地迭代创建并让我的动态构造对象的最终组件树记录下来以备将来使用。

可能的方法,我不知道会起作用:第一种 - 使用 RAM 晶片作为我的位掩码,手动和顺序地存储每个 RAM 单元中位标志的值。第二 - 将映射分解为已知大小的较小位掩码(很难,因为在创建完成之前组件的最终数量是未知的,并且在不重构整个系统的情况下解耦推论甚至可能是不可能的)。第三 - 找出一种方法来制作一个无限位掩码,或者使用一些实现了非常长的整数(5.12e+11 或更大)的库。

我的代码是用 C++ 编写的,我的渲染和计算内核是 Vulkan。

我的客观问题: 我如何实现一个任意长的位掩码,它是内存和计算高效的?

如果允许我提出一个额外的问题,假设我没有架构(软件和硬件)限制,那么实现这种位掩码的最有效方法是什么?

¹ 在模拟过程中我无法浏览对象的树,我也无法暂停模拟并等待浏览完成后再注入修改,我需要知道并能够在任意模拟帧上进行任意更改以预先安排的方式和实时方式。

0 投票
0 回答
54 浏览

network-programming - 量化网络通信的归一化向量

我想知道是否可以以某种较短的数据类型发送 Vector3(float x, float y, float z),因为现在我正在发送三个浮点数(3*4 字节)。我说的是归一化向量,对于每个向量部分,它只能保持从 -1f 到 +1f 的范围,这就是为什么我想知道是否有可能以某种方式移动位(或类似的东西)并将所有三个值都放在一个 4字节长度值,甚至更短?

0 投票
1 回答
49 浏览

sprite-kit - 如何跟踪 2 个精灵之间的多次碰撞?

这里举个例子,只是为了便于理解:

Sprite A 是一个球。Sprite B 是一个立方体。当球接触立方体一次时,我希望标签说第一次接触。当同一个球再次接触同一个立方体时,我希望标签说第二次接触。当同一个球,再次接触同一个立方体时,我想让标签说第三次接触。

我该如何做到这一点?

在我看来,Sprite 套件似乎只允许对精灵之间的 1 次碰撞进行编程,这是非常有限的。特别是,因为我想创建一个敌人,它实际上会根据从玩家那里接收到的命中量来改变行为,而不仅仅是每次碰撞都采取相同的动作。