小编Spe*_*tre的帖子

从bitset获取某些位的十进制值的快速方法

我有一个可变mask类型的std::bitset<8>

std::string bit_string = "00101100";
std::bitset<8> mask(bit_string);
Run Code Online (Sandbox Code Playgroud)

有没有一种有效的方法可以快速屏蔽掉另一个给定的相应(三个)位std::bitset<8> input并将所有这些屏蔽的位移到最右边?例如,如果input10100101,那么我想快速得到十进制00000101等于5.然后,我可以vect[5]为了快速索引第六元素的vectstd::vector<int>尺寸为8.

或者更确切地说,我可以快速获取被屏蔽的位的十进制值(保留其相对位置)吗?或者我不能?

我想在我的情况下,我可以采取的优势是bitset<8> mask.而且我应该以某种方式操纵它来快速完成工作.

我觉得这样(由Spektre补充):

mask  00101100b 
input 10100101b
---------------
&     ??1?01??b
>>         101b
             5
Run Code Online (Sandbox Code Playgroud)

c++ algorithm bit-manipulation bitset

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

取消将鼠标悬停在图像上的部分模糊

我一直在尝试使图像看起来模糊,但是当鼠标悬停在鼠标上时,它会清除光标指向的那一点。与www.canva.com网站非常相似。

到目前为止,这是我的代码,它不能100%工作。我正在使用HTML,CSS和Javascript。不幸的是,我是javascript新手!

HTML:

<!doctype html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>QuoteWall</title>
        <link rel="stylesheet" type="text/css" href="style.css">
        <link rel="stylesheet" type="text/javascript" href="javascript.js">
    </head>
<body>
<div class="pic">
    <svg class="blur" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%">
        <image filter="url(#filter2)" xlink:href="image.png" width="100%" height="100%"></image>
        <filter id="filter2">
            <feGaussianBlur stdDeviation="5" />
        </filter>
        <mask id="mask1">
            <circle cx="-50%" cy="-50%" r="30" fill="white" filter="url(#filter2)" />
        </mask>
        <image xlink:href="image.png" width="100%" height="100%" mask="url(#mask1)"></image>
    </svg>
</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

CSS:

body {
    margin: 0;
}
.pic {
    text-align: center;
    position: relative;
    height: 250px;
}
.blur {
    height: 100%; …
Run Code Online (Sandbox Code Playgroud)

html javascript css jquery image

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

一个很好的随机拼图15

我实施了一个难题15,供人们在线竞争。我当前的随机器的工作原理是从良好的配置开始,然后将图块移动100步(任意数)

一切都很好,但是,每过一会儿,瓷砖就会变得太容易洗牌,只需几步就可以解决难题,因此对于某些人以更高的速度获得更好的成绩,游戏确实是不公平的。

什么是将初始配置随机化以免“太容易”的好方法?

random algorithm math sliding-tile-puzzle

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

线性深度缓冲

许多人使用通常的透视矩阵与第三行像这样:

(0  0  (n+f)/(n-f) 2*n*f/(n-f))
Run Code Online (Sandbox Code Playgroud)

但它在远剪裁面附近浮动精度有问题.结果是z战斗.如何使用z的线性变换?让我们将矩阵第三行更改为:

(0  0  -2/(f-n) (-f-n)/(f-n))
Run Code Online (Sandbox Code Playgroud)

它将是从[-n,-f]到[-1,1]的线性变换z.然后,我们将在顶点着色器中添加该行:

gl_Position.z *= gl_Position.w;
Run Code Online (Sandbox Code Playgroud)

透视分割后,z值将被恢复.

为什么不到处使用?我在互联网上发现了很多文章.所有这些都使用了通常的矩阵.我描述的线性变换是否存在我看不到的问题?

更新:这不是重复这个.我的问题不是关于如何做线性深度缓冲.就我而言,缓冲区已经是线性的.我不明白,为什么这个方法没用?内部webgl管道中是否存在陷阱?

opengl-es depth-buffer webgl

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

OpenGL GL_DEPTH_TEST vs glDepthFunc和glDepthMask?

我一直在使用glDisable(GL_DEPTH_TEST)禁用深度测试,认为它只会禁用深度"测试".我之所以感到困惑的原因是因为我创建了两个函数,一个用于禁用深度"test",另一个用于禁用深度"写入"glDepthMask(GL_FALSE);

如果禁用GL_DEPTH_TEST禁用"测试"和"写入",那么它是否相当于:

glDepthFunc(GL_ALWAYS?); // DISABLE TESTS (OR ACTUALLY ALWAYS LET THE TEST SUCCEED)
glDepthMask(GL_FALSE); // DISABLE WRITES
Run Code Online (Sandbox Code Playgroud)

我认为GL_DEPTH_TEST除非我想禁用测试和写入,否则禁用很少,我想知道哪一个更好.措辞似乎令人困惑,但也许只是我.我认为禁用深度测试glDepthFun(GL_ALWAYS)仍然会进行比较,我想在仍然允许写入的情况下,没有办法完全禁用深度测试?

opengl graphics zbuffer depth-buffer

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

我想在python中实现唐叶乘法

我想在python中实现Karatsuba乘法。

但是当数字很大时,我得到了正确的答案。

谁能告诉我我的代码哪里错了?

当 x 非常大时,唐叶乘法实现是不正确的。

import math
def fun1(x,y):
    if x <= 100  or y<=100:
        return x*y
    else:
        n = int(math.log10(x)) + 1
        print(n)
        #split x
        a = int(x//(10**int(n/2)))
        b = int(x%(10**int(n/2)))
        #split y
        c = int(y//(10**int(n/2)))
        d = int(y%(10**int(n/2)) )
        print('=======')
        print(a,b,c,d)
        s1 = fun1(a,c)
        s2 = fun1(b,d)
        s3 = fun1(a+b, c+d) - s1 -s2

        return 10**(n) * s1 + 10**int(n/2) * s3 + s2
x = 3141592653589793238462643383279502884197169399375105820974944592
y = 3141592653589793238462643383279502884197169399375105820974944592
res = fun1(x,y)
print(res)
Run Code Online (Sandbox Code Playgroud)

结果对比如下: …

python algorithm karatsuba

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

使用 OpenGL 用不同的图像对立方体进行纹理化

我目前正在进行一个学校项目,我需要对一个仅显示 3 个面的非旋转立方体进行纹理处理。我尝试过自己做,但我只在所有 3 个面上得到一张图像。我不知道是我的方法错误还是我加载剩余两张图像的方式错误。我非常感谢任何人的帮助。

这就是我加载纹理的方式

GLuint VAO, VBO;
glGenVertexArrays(1, &VAO);
glGenBuffers(1, &VBO);

glBindVertexArray(VAO);

glBindBuffer(GL_ARRAY_BUFFER, VBO);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);

// position attribute
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 5 * sizeof(float), (void*)0);
glEnableVertexAttribArray(0);
// texture coord attribute
glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 5 * sizeof(float), (void*)(3 * sizeof(float)));
glEnableVertexAttribArray(1);

// this is for texture coords

//Load Image
//int width, height; // width1, height1;
//unsigned char* image = SOIL_load_image("res/images/image1.jpg", &width, &height, 0, SOIL_LOAD_RGBA);

GLuint texture1, texture2, texture3;
// texture 1
// ---------
glGenTextures(1, …
Run Code Online (Sandbox Code Playgroud)

opengl textures glew glfw visual-studio-2019

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

找到形成垂直线 BC 到线 AB 的点 C

我有AB由两个2D点定义的线段A,B

我所试图做的是找到一个点C,随着距离d远离B。这两个约束BC必须垂直于AB 并且 BC总是90相对于 逆时针旋转度数AB

到目前为止,我有以下内容

double d = .01;
Coordinate C = new Coordinate(A.Lat - B.Lat, A.Long - B.Long);

C.Long = C.Long * A.Long * Math.Cos(90);
C.Lat = C.Lat * A.Lat * Math.Cos(90);

C.Long = A.Long + C.Long * d;
C.Lat = A.Lat + C.Lat * d;
Run Code Online (Sandbox Code Playgroud)

基本上我要问的是,我哪里出了问题?是c#代码吗?这是逻辑吗?解决C使用这两个约束的步骤是什么。

在此处输入图片说明

c# algorithm math geometry 2d

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

真实模拟地板上的球体旋转

我正在尝试模拟一个在地板上滚动的球体。对于模拟,我使用的是 Flash AS3 的旧版 Papervision3D 库,但这实际上并不重要,这是一个纯粹的几何问题。

假设我有一个 Sphere3D 对象,我可以为其设置rotationX、rotationY 和rotationZ 属性,如何计算该球体在地板上滚动的每个轴的旋转?

例如,我们假设球体处于静止状态。现在它向右滚动 1 米。如果我从顶部看这个球体 - 我想将它绕 Z 轴旋转 90 度。然后球体应该沿着地板“向下”滚动,所以我想围绕 X 轴旋转它,但这个问题是,与此同时,当我沿着 Z 轴旋转球体时,X 轴会自行旋转。

我该如何解决这个问题?

谢谢

3d geometry physics

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

如何获得3d中点到平面的距离?

我有一个三角形,其中包含点 A、B、C 和空间中的点 (P)。如何获得点到平面的距离?我需要计算从 P 到平面的距离,即使我的三角形距离很远(或者不在该点上方,如图所示)。

点和三角形:

3d geometry point projection plane

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