小编Eci*_*ana的帖子

快速光栅化文本和矢量艺术

假设有很多矢量形状(确定形状边界的贝塞尔曲线).例如一个充满小字母的页面.

从中创建位图的最快方法是什么?

几年前我曾经看过一个演示(现在找不到),有些人使用GPU来光栅化矢量艺术 - 他们能够实时放大/缩小页面.Bezier形状的GPU渲染的当前状态是什么?真的很快吗?比CPU快?什么是常见的和不那么常见的算法?这样的东西有没有开源库?它使用什么语言?那么OpenGL呢?

opengl graphics gpu gpgpu

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

图像大小调整:什么是"过滤器"?

我试图理解图像大小调整是如何工作的 - 请有人向我解释什么是"过滤器"有用吗?

  • 滤镜是否计算源像素对目标像素的贡献量?

  • 有像"盒子"和"高斯"这样的过滤器,但是有一个名为"bicubic"的过滤器吗?我在这里混合两个概念,一个是"卷积滤波器"和......?

  • 是否可以使用相同的过滤器进行放大和缩小?(看到这个示例代码真的很棒)

  • 首先在一个维度上拉伸图像然后在另一个维度中拉伸图像是否可取?

graphics cg 2d image-scaling

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

名称为16位和32位

8位称为"字节".如何调用16位?"短"?"字"?

32位怎么样?我知道"int"依赖于CPU,我对普遍适用的名称感兴趣.

bits terminology conventions

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

在Qt 5中嵌入Python

我想将Python解释器嵌入到Qt 5应用程序中.

我在Qt 5中有一个工作应用程序,但是当我放入时

#include <Python.h>
Run Code Online (Sandbox Code Playgroud)

在顶部(Qt标题下方)编译中断

../sample/python3.3m/object.h:432:23: error: expected member name or ';' after declaration specifiers
PyType_Slot *slots; /* terminated by slot==0. */
~~~~~~~~~~~       ^
Run Code Online (Sandbox Code Playgroud)

当我将Python标题放在Qt标题之上时,它会破坏

In file included from ../Qt5.0.1/5.0.1/clang_64/include/QtGui/QtGui:59:
../Qt5.0.1/5.0.1/clang_64/include/QtGui/qpagedpaintdevice.h:63:57: error: expected '}'
                    A0, A1, A2, A3, A5, A6, A7, A8, A9, B0, B1,
                                                        ^
/usr/include/sys/termios.h:293:12: note: expanded from macro 'B0'
 #define B0      0
                ^
../Qt5.0.1/5.0.1/clang_64/include/QtGui/qpagedpaintdevice.h:62:19: note: to match this '{'
    enum PageSize { A4, B5, Letter, Legal, Executive,
                  ^
1 error generated.
Run Code Online (Sandbox Code Playgroud)

拜托,有谁知道为什么会这样?我可能是因为Qt和Python定义了一些常用词?我能做些什么呢?

python qt compiler-errors python-embedding

7
推荐指数
2
解决办法
2794
查看次数

优化PyPy

(这是PyPy统计分析器的后续)

我在PyPy下运行一些Python代码,并希望对其进行优化.

在Python中,我会使用statprof或lineprofiler知道哪些确切的行导致减速并尝试解决它们.但是在PyPy中,两个工具都没有真正报告合理的结果,因为PyPy可能会优化掉某些行.我也不愿意使用,cProfile因为我发现很难提炼报告功能的哪一部分是瓶颈.

有没有人有关于如何进行的一些提示?也许是另一个在PyPy下运行良好的分析器?一般来说,如何为PyPy优化Python代码?

python optimization profiling pypy

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

动态前缀和

是否有任何数据结构能够返回数组的前缀和 [1]、更新元素以及向数组中插入/删除元素,所有这些都在 O(log n) 中?

[1]“前缀总和”是从第一个元素到给定索引的所有元素的总和

例如,给定非负整数数组,8 1 10 7前三个元素的前缀和是19( 8+ 1+ 10)。将第一个元素更新为7,3作为第二个元素插入并删除第三个元素给出7 3 10 7。同样,前三个元素的前缀和将为20。

对于前缀 sum 和 update,有Fenwick tree。但我不知道如何用它处理 O(log n) 中的添加/删除。

另一方面,有几种二叉搜索树,例如红黑树,它们都在对数时间内处理更新/插入/删除。但我不知道如何维护给定的排序并在 O(log n) 中进行前缀和。

algorithm binary-search-tree data-structures prefix-sum

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

排序间隔查询

我正在寻找一种数据结构,它可以在封闭的时间间隔内有效地运行,具有以下属性:

  • 动态添加或删除间隔

  • 设置并随时更改每个间隔的数字("深度").没有两个深度是一样的

  • 查找与任何给定间隔重叠的所有间隔,按"深度"排序

我找到的最接近的结构是Interval树,但是它以相对于它们的深度的任意顺序列出了找到的间隔.我可以收集所有报告的"未排序"间隔,然后对它们进行排序,但我跳过它可以避免为每个查询排序结果.

请问,有没有人知道这样的数据结构或有任何建议如何(如果可能的话)增强Interval树来支持这样的排序?

例:

  1. 将[1,2]添加到空结构并将其深度设置为1
  2. 添加[10,100],深度= 2
  3. 添加[5,55],深度= 3
  4. 查询[5,50]报告[10,100]和[5,55]
  5. 将[10,100]的深度设置为3,将[5,55]设置为2
  6. 查询[5,50]报告[5,55]和[10,100]

编辑

我对快速添加/删除和查询更感兴趣,而不是更新深度.深度可以与O(n)一样多,如果这有助于加速其他操作.

algorithm interval-tree data-structures

7
推荐指数
2
解决办法
447
查看次数

计算 2^2?% uint64_t

如何有效计算 2\xc2\xb9\xc2\xb2\xe2\x81\xb8 % n,其中 n 为uint64_t(且非零)?

\n

如果我能够像_udiv128MSVC 的内在那样缩小范围,我可以这样做:

\n
uint64_t remainder;\n_udiv128(1, 0, n, &remainder);\n_udiv128(remainder, 0, n, &remainder);\n
Run Code Online (Sandbox Code Playgroud)\n

但这是两条慢指令,更不用说像 ARM 这样的 CPU 没有缩小除法。有没有更好的办法?

\n

相关:如何在 C 中计算 2\xe2\x81\xb6\xe2\x81\xb4/n?

\n

c optimization assembly integer-division

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

NSTextView逐行滚动

当使用"向上"和"向下"键在文本视图中从一行移动到另一行时,它表现出这种滚动行为 - 当光标位于最顶部并且我点击"向上"(反之亦然)时,它会滚动文档的一半向上翻页,即当前行现在位于textview的中间.

是否可以禁用此行为?是否可以只滚动一行?那么当前行始终位于顶部(或底部)?

cocoa scroll nstextview

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

三角恒等式

我有一个既有正弦又有余弦的表达式,想只用正弦(或余弦)来写它,可能要用幂减公式。

我尝试使用SymPy,但无法使其“重写”为所需的输出:

angle = symbols('angle')
print (sin(angle)**2).rewrite(sin, cos) # (1 - cos(2*angle))/2
print ((1 - cos(2*angle))/2).rewrite(cos, sin) # sin(angle)**2
Run Code Online (Sandbox Code Playgroud)

有没有办法告诉Sympy仅使用正弦(或余弦)重写这样的表达式?

python math trigonometry sympy

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