小编SHR*_*SHR的帖子

缩放TrueType字体会导致文本模糊吗?

我正在使用FreeType来呈现文本.有人告诉我,TrueType依赖于数学,因此在缩放像位图字体时不应该模糊.但是,这正是我发生的事情.

我所做的是首先在FreeType中初始化一个'face',然后将生成的glyph位图存储在纹理中.然后我将该纹理缩放4并渲染它 - 它看起来很模糊!

所以这就是我所做的(大约):

FT_Face face;
if(FT_New_Face(ft, "fonts/arial.ttf", 0, &face))
    std::cout << "Failed to load font\n";
Run Code Online (Sandbox Code Playgroud)

然后生成一个纹理

unsigned int texture;
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RED, face->glyph->bitmap.width,
    face->glyph->bitmap.rows, 0, GL_RED, GL_UNSIGNED_BYTE, face->glyph->bitmap.buffer);
Run Code Online (Sandbox Code Playgroud)

然后通过在更大的四边形上拉伸纹理来缩放...

那么为什么我的TrueType字体在缩放就像位图字体时变得模糊了?

c++ opengl truetype freetype

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

XorShift数字生成

用C和Python编写的相同XorShift函数给出了不同的结果.你能解释一下吗?

XorShift函数以下列方式生成数字:

x(0) = 123456789
y(0) = 362436069
z(0) = 521288629
w(0) = 88675123 

x(n+1) = y(n)
y(n+1) = z(n)
z(n+1) = w(n)
w(n+1) = w(n) ^ (w(n)>>19) ^ (x(n)^(x(n)<<11)) ^ ((x(n)^(x(n)<<11)) >> 8)
Run Code Online (Sandbox Code Playgroud)

我在Python中编写了这个函数来生成w的后续值:

X = 123456789
Y = 362436069
Z = 521288629
W = 88675123

def xor_shift():
    global X, Y, Z, W
    t = X ^ (X << 11)
    X = Y
    Y = Z
    Z = W
    W = W ^ (W >> 19) ^ t ^ …
Run Code Online (Sandbox Code Playgroud)

c c++ python xor shift

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

为什么这个2D向量会导致段故障(核心转储)

#include <iostream>
#include <vector>

int main() 
{
    std::vector<std::vector<int>> a;
    a[0] = {1,2,3,4,5};
    a.push_back({12,123,123,1,3,1,23});
    size_t size = a.size();
    std::cout << size << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

g ++编译器传递了这个程序,但是当我运行它时会出现这个错误

分段故障(核心转储)

怎么解决?如何计算此2D矢量中的所有元素?

c++ size vector

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

SQL Server:在BIGINT列中存储INT可能有问题吗?

我有以下结构中的映射表:

CREATE TABLE MappingTable 
(
    TableName SYSNAME,
    SrcId BIGINT,
    DstId BIGINT,
    PRIMARY KEY (Name, SrcId),
    UNIQUE (Name, DstId)
)
Run Code Online (Sandbox Code Playgroud)

SrcId并且DstId指的Identity是2个相同数据库中的列,大多数列类型INT但是有些是BIGINT,因此我将所有列存储为BIGINT.

现在,我想写的功能得到DstIdTableNameSrcId.

所以我的问题很简单:我有没有理由实现2个功能,一个用于INT第二个用于第二个用于BIGINT

澄清一下:我读了我写的内容:当写一篇文章的时候,INT它的内容是"读" INT,同样适用BIGINT.

sql-server types function

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

C++"delete []"运算符仅删除2个第一个值

我刚刚开始学习C++,我很难理解delete []运算符的工作原理.我编写了一个代码来查看它是如何工作的,但它只删除了数组的前2个元素.我的问题是如何删除数组?

这是代码:

#include <iostream>
int main()
{
    using namespace std;
    int size;
    cout << "Size: ";
    cin >> size;
    int * pt = new int [size];
    for(int i = 0; i < size; i++) {
        pt[i] = i + 1;
        cout << "Addrres: " << &pt[i] << " " << "Index: " << i << " "
             << "Value: " << pt[i] << " "   << endl;
    }
    cout << "----------DELETING----------" << endl;
    delete [] pt;

    for(int i = …
Run Code Online (Sandbox Code Playgroud)

c++ arrays memory-management delete-operator

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

如何使用scanf限制输入长度

在这个程序中,我采用了一个大小为[3][4] 的多维字符数组,只要我为每行输入 3 个字符,它就可以正常工作。

例如:如果我输入, abc abd abd我会得到相同的输出,但如果我在第一行或第二行或第三行输入更多字母,则会出现错误。

我应该如何检查二维中的空字符?

# include <stdio.h>         
#include  <conio.h>   
# include <ctype.h>

void main()
{
   int i=0; 
   char name[3][4];
   printf("\n enter the names \n");
   for(i=0;i<3;i++)
   {
      scanf( "%s",name[i]); 
   } 

   printf( "you entered these names\n");
   for(i=0;i<3;i++)
   {
      printf( "%s\n",name[i]);
   }
   getch(); 
}
Run Code Online (Sandbox Code Playgroud)

c arrays scanf

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