小编Ady*_*y96的帖子

如何通过中心旋转立方体

我正在尝试使用键盘来旋转一个装满小立方体的"立方体",这种键盘可以工作但不是很好.

我正在努力将旋转点设置到大"立方体"/世界的中心.正如你在这个视频中看到的那样,大立方体的前(初始)面的中心是我现在旋转的枢轴点,当我稍微旋转世界时,这有点令人困惑.

为了更好地解释它,当我使用键来旋转立方体时,看起来我正在移动立方体的初始面.因此从这个角度来看枢轴点可能没问题,但我的代码有什么问题?我不明白为什么它正在前面移动,而不是整个立方体的中心?

在生成所有小立方体的情况下,我调用3 for for循环(x,y,z)中的函数,然后函数返回,cubeMat因此我可以在视频中看到所有生成的多维数据集.

cubeMat = scale(cubeMat, {0.1f, 0.1f, 0.1f});
cubeMat = translate(cubeMat, {positioning...);
Run Code Online (Sandbox Code Playgroud)

对于旋转本身,向左旋转的简短示例如下所示:

mat4 total_rotation; //global variable - never resets
mat4 rotation;       //local variable

if(keysPressed[GLFW_KEY_LEFT]){
            timer -= delta;
            rotation = rotate(mat4{}, -delta, {0, 1, 0});
}
... //rest of key controls
total_rotation *= rotation;
Run Code Online (Sandbox Code Playgroud)

在这3个周期内也是这样的:

program.setUniform("ModelMatrix", total_rotation * cubeMat);
cube.render();
Run Code Online (Sandbox Code Playgroud)

我已经读过我应该使用transformation枢轴点设置到中间但是在这种情况下,我如何设置位于世界中心的小立方体内的枢轴点?那个立方体显然是x=2, y=2, z=2因为在循环中,我生成立方体从开始x=0.

opengl 3d rotation projection-matrix glm-math

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

了解glClearColor值

我试图创建一个单一的OpenGL窗口,在RGB颜色选择器中选择一些背景颜色,但看起来我在这个函数中缺少一些重要的东西.当我想将颜色设置为标准颜色时,例如红色,它可以工作.

glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
Run Code Online (Sandbox Code Playgroud)

但是,当我想要设置一些异国情调的颜色时,184, 213, 238, 1它只显示白色.

glClearColor(184.0f, 213.0f, 238.0f, 1.0f);
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?什么是十进制值,也是f

c++ opengl rgb

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

String_agg用于多列

我有以下选择

$repairs = DB::select(DB::raw('
            select r.id repair_id, w.name, w.surname
                from repairs r
                    join repair_worker rw on r.id = rw.repair_id
                    join workers w on w.id = rw.worker_id
                where r.vehicle_id = ?
                group by w.name, w.surname, r.id
           '),[$vehicle->id]);
Run Code Online (Sandbox Code Playgroud)

我想获得w.namew.surname成为一个领域,例如通过逗号分隔。有一个功能,string_agg(column, ',')但是我没有运气能正常工作。我总是会收到语法错误。

我的尝试:

$repairs = DB::select(DB::raw('
                select r.id repair_id, string_agg(w.name, w.surname, ', ') workers
                    from repairs r
                        join repair_worker rw on r.id = rw.repair_id
                        join workers w on w.id = rw.worker_id
                    where r.vehicle_id = ?
                    group by r.id …
Run Code Online (Sandbox Code Playgroud)

php sql postgresql

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

标签 统计

opengl ×2

3d ×1

c++ ×1

glm-math ×1

php ×1

postgresql ×1

projection-matrix ×1

rgb ×1

rotation ×1

sql ×1