这个主题不时出现在SO上,但通常是因为写得不好的问题而被删除.我看到很多这样的问题,然后在请求附加信息时从OP(通常的低代表)中沉默.如果输入对我来说足够好,我决定回答一个问题,它通常会在活动时每天获得一些投票,但几周之后问题就会被删除/删除,并且所有问题都从一开始就开始.所以我决定写这个Q&A所以我可以直接引用这些问题,而不会一遍又一遍地重写答案......
另一个原因也是这个META线程针对我,所以如果你有额外的输入随意评论.
如何使用C++将位图图像转换为ASCII艺术?
一些限制:
这是一个相关的Wiki页面ASCII艺术(感谢@RogerRowland)
我对在尺寸为3或更高的球面上均匀分布N个点感兴趣。
更加具体:
我对以下内容不感兴趣:
满足这些条件的一种方法称为斐波那契晶格,但我只能在2d和3d中找到该方法的代码实现。
斐波纳契晶格(也称为斐波纳契螺旋)背后的方法是生成绕球体表面成螺旋形的一维线,以使该线所覆盖的表面积每转大致相同。然后,您可以丢掉均匀分布在螺旋上的N个点,它们将大致均匀地分布在球体的表面上。
在此答案中,有一个针对3个维度的python实现,可生成以下内容:
我想知道斐波那契螺旋是否可以扩展到大于3的尺寸,并在数学堆栈交换中发布了一个问题。令我惊讶的是,我收到了两个令人惊讶的答案,据我所知(因为我不完全理解所显示的数学)表明确实有可能将该方法扩展到N维。
不幸的是,我对所显示的数学知识还不够了解,无法将任何一个答案都转换成(伪)代码。我是一位经验丰富的计算机程序员,但是我的数学背景仅此而已。
我将复制我认为是以下答案之一最重要的部分(不幸的是,SO不支持mathjax,因此我必须复制为图像)
我遇到的上述困难:
在座的任何人都可以理解所涉及的数学知识,从而能够朝着链接斐波那契晶格问题的任一答案的伪代码实现取得进展?我知道完整的实施可能很困难,因此我对部分实施感到满意,该实施可以使我足够自己完成其余的工作。
为简化起见,我已经编写了一个函数,该函数将N个维度的球面坐标转换为笛卡尔坐标,因此该实现可以输出任意一个,因为我可以轻松进行转换。
另外,我看到一个答案为每个附加维使用下一个质数。我可以轻松地编写一个输出每个连续素数的函数,因此可以假定已经实现了。
如果未能在N个维度上实现斐波那契晶格,我很乐意接受满足上述约束的另一种方法。
在这个问题中,我称之为"浮点数""十进制数",以防止使用float
/ double
Java原始数据类型进行ambiguation .术语"十进制"与"基数10"无关.
我用这种方式表示任何基数的十进制数:
class Decimal{
int[] digits;
int exponent;
int base;
int signum;
}
Run Code Online (Sandbox Code Playgroud)
它大致表达了这个double
值:
public double toDouble(){
if(signum == 0) return 0d;
double out = 0d;
for(int i = digits.length - 1, j = 0; i >= 0; i--, j++){
out += digits[i] * Math.pow(base, j + exponent);
}
return out * signum;
}
Run Code Online (Sandbox Code Playgroud)
我知道有些转换是不可能的.例如,无法转换0.1 (base 3)
为基数10,因为它是重复的小数.类似地,转换0.1 (base 9)
到基础3是不可能的,但是可以进行协调0.3 (base 3)
.可能还有其他一些我没有考虑过的案例.
对于整数,从基数10到基数2的基数变化的传统方式(手动)是将数字除以2的指数,并且从基数2到基数10将数字乘以2的相应指数.从基数x变为基数 …
为了加快我的bignum除数,我需要加速y = x^2
bigints的操作,bigints被表示为无符号DWORD的动态数组.要明确:
DWORD x[n+1] = { LSW, ......, MSW };
Run Code Online (Sandbox Code Playgroud)
x = x[0]+x[1]<<32 + ... x[N]<<32*(n)
问题是:如何在y = x^2
没有精度损失的情况下尽快计算?
- 使用C++和整数算术(32位带Carry)处理.
我目前的方法是应用乘法y = x*x
并避免多次乘法.
例如:
x = x[0] + x[1]<<32 + ... x[n]<<32*(n)
Run Code Online (Sandbox Code Playgroud)
为简单起见,让我重写一下:
x = x0+ x1 + x2 + ... + xn
Run Code Online (Sandbox Code Playgroud)
其中index表示数组内的地址,因此:
y = x*x
y = (x0 + x1 + x2 + ...xn)*(x0 + x1 + x2 + ...xn)
y = x0*(x0 …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Tesseract OCR从图像中提取文本.目前,使用原始输入图像(如下所示),输出质量很差(约50%).但是当我尝试删除输入图像中的所有线条和边框(使用photoshop)时,输出提高了很多(~90%).那么有没有办法以编程方式删除图像中的所有线条和边框(保留文本)(使用OpenCV,Image magick,..)?
原始图片:
期待图片:
我尝试将文件从iOS上传到AWS API网关并通过它传递给Lambda函数,我该如何实现这种情况?
我可以使用multipart/form-data上传到AWS API Gateway但是如何使输入Model支持二进制数据?
[Edit1]从Spektre的回答中移开
谢谢对于响应,经过一些阅读后我发现无法将文件上传到lambda(并且它不合逻辑因为它是基于事件的)并且是上传到S3并使S3通知lambda的唯一有效用例.
I wanted to use NTT for fast squaring (see Fast bignum square computation), but the result is slow even for really big numbers .. more than 12000 bits.
So my question is:
This is my (already optimized) source code in C++ for NTT (it's complete …
我正在尝试使用平面着色在 LWJGL OpenGL 中渲染 3D 棱镜。例如,我有一个索引如下的多维数据集:
我的顶点缓冲区中只有 8 个顶点,我已按上述方式对其进行了索引。有没有办法在立方体上实现平坦的法线着色,如下所示?如果可能的话,我不想重写我的顶点和索引缓冲区以包含重复的顶点。
我正在使用 libgdx,想要制作一个常见的高斯模糊后处理效果。按照本指南,我遇到了纹理过滤的一些问题。这里是图像:
实际图像:
半径 = 1 时模糊:
半径 = 5 进行模糊处理:
在最简单的情况下,我只有一个透明的帧缓冲区对象,其中渲染了一些对象。然后我需要对此应用一些着色器效果,基本上只是模糊,然后将结果渲染到屏幕上。我还想调整模糊半径,但如果我将半径设置为大于 1,它就会看起来非常粗糙。我猜它应该与一些线性过滤一起使用,但它不在这里。所以我只需要应用相同的效果与软模糊和可配置的半径,也许还有一些其他着色器侧选项。我还尝试将线性过滤显式分配给 FBO 纹理,这不会改变任何内容。
片段着色器:
//"in" attributes from our vertex shader
varying vec4 vColor;
varying vec2 vTexCoord;
//declare uniforms
uniform sampler2D u_texture;
uniform float resolution;
uniform float radius;
uniform vec2 dir;
void main() {
//this will be our RGBA sum
vec4 sum = vec4(0.0);
//our original texcoord for this fragment
vec2 tc = vTexCoord;
//the amount to blur, i.e. how far off center to sample from
//1.0 …
Run Code Online (Sandbox Code Playgroud) 一连几天,我一直在想,怎么会是可能的周围幅度计算庞大的数字的正弦100000!
(弧度).阶乘只是一个例子,数字本身可以是任何不仅仅是一个因子产品...)我显然不使用double
但cpp_rational
来自boost multiprecision库.但我不能简单地做100000! mod 2pi
,然后使用内置函数sinl
(我不需要超过10位十进制数字..)因为我需要数百万的pi数字来准确地做到这一点.
有没有办法实现这个目标?
c++ ×4
math ×3
algorithm ×2
glsl ×2
opengl ×2
shader ×2
2d ×1
ascii-art ×1
aws-lambda ×1
base ×1
bignum ×1
bitmap ×1
boost ×1
geometry ×1
image ×1
imagemagick ×1
ios ×1
java ×1
lwjgl ×1
ntt ×1
opencv ×1
optimization ×1
performance ×1
pseudocode ×1
sqr ×1
tesseract ×1
trigonometry ×1