小编KK.*_*KK.的帖子

绘制多维数据集时出现奇怪的OpenGL行为

当我使用此代码绘制多维数据集时

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
gluLookAt(
x,    y,    z, 
x+xp, y+yp, z+zp,
0.0f, 1.0f, 0.0f);   
glBegin(GL_QUADS);            

glColor3f(0.0f,1.0f,0.0f);            
glVertex3f( 1.0f, 1.0f,-1.0f);        
glVertex3f(-1.0f, 1.0f,-1.0f);       
glVertex3f(-1.0f, 1.0f, 1.0f);       
glVertex3f( 1.0f, 1.0f, 1.0f);        

glColor3f(1.0f,0.5,0.0f);           
glVertex3f( 1.0f,-1.0f, 1.0f);        
glVertex3f(-1.0f,-1.0f, 1.0f);        
glVertex3f(-1.0f,-1.0f,-1.0f);       
glVertex3f( 1.0f,-1.0f,-1.0f);        

glColor3f(1.0f,0.0f,0.0f);            
glVertex3f( 1.0f, 1.0f, 1.0f);        
glVertex3f(-1.0f, 1.0f, 1.0f);       
glVertex3f(-1.0f,-1.0f, 1.0f);        
glVertex3f( 1.0f,-1.0f, 1.0f);        

glColor3f(1.0f,1.0f,0.0f);            
glVertex3f( 1.0f,-1.0f,-1.0f);        
glVertex3f(-1.0f,-1.0f,-1.0f);        
glVertex3f(-1.0f, 1.0f,-1.0f);        
glVertex3f( 1.0f, 1.0f,-1.0f);        

glColor3f(0.0f,0.0f,1.0f);            
glVertex3f(-1.0f, 1.0f, 1.0f);       
glVertex3f(-1.0f, 1.0f,-1.0f);        
glVertex3f(-1.0f,-1.0f,-1.0f);       
glVertex3f(-1.0f,-1.0f, 1.0f);        

glColor3f(1.0f,0.0f,1.0f);            
glVertex3f( 1.0f, 1.0f,-1.0f);        
glVertex3f( 1.0f, 1.0f, 1.0f);        
glVertex3f( 1.0f,-1.0f, 1.0f); …
Run Code Online (Sandbox Code Playgroud)

c opengl 3d glut depth-testing

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

将值保存到块而不是代表它的单词标签

我试图将一些字符串值保存到一个块中,以便我可以将该块保存到文本文件中.我使用VID从表单中获取这些值.

一种方法是简单地将字符串保存到文件中.但我更希望能够将数据作为块检索.

这就是我打算做的事情:

view layout [
    contact-name: field
    save-button: btn "Save" [
        saved-data-block: copy []
        append saved-data-block [[contact-name: contact-name/text]] ;problem here
        save my-file saved-data-block
    ]
]
Run Code Online (Sandbox Code Playgroud)

对于Rebol User名称字段中的输入,存储在文件中的内容应该类似[contact-name: "Rebol User"],但内容是[contact-name: contact-name/text]

我知道问题是在我追加它时,块没有被评估为代码saved-data-block.如何以块状方式将字符串值保存到文本文件中?我应该做其他事情来实现这个目标吗?欢迎提出任何意见/疑问.

string rebol block rebol2

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

为什么使用(360*16)而不是360度?

我在使用Qt时注意到这一点,通过代码示例.

当他们试图设置存储角度的变量的范围(在这种情况下是角度)时,为什么需要将360 乘以 16而不是360?

代码(来自hellogl示例)是

static void qNormalizeAngle(int &angle)
{
    while (angle < 0)
        angle += 360 * 16;
    while (angle > 360 * 16)
        angle -= 360 * 16;
}
Run Code Online (Sandbox Code Playgroud)

colloidingmice示例中的另一个示例:

Mouse::Mouse()
    : angle(0), speed(0), mouseEyeDirection(0),
      color(qrand() % 256, qrand() % 256, qrand() % 256)
{
    setRotation(qrand() % (360 * 16));
}
Run Code Online (Sandbox Code Playgroud)

承认我在Qt和图形编程方面几乎没有经验,也告诉我这是否在所有地方或仅在Qt中是常见的.

graphics qt

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

c ++ struct没有命名类型

我在头文件中定义一个结构,然后在corrosponding .cpp文件中设置它的成员.为此,我使用的函数应该在其范围内创建(相同)结构,然后返回它.像这样的东西:

在标题中:

#include <things>
class GLWindow : public QGLWidget, public QGLFunctions
{
    Q_OBJECT
public:
    GLWindow(QWidget *parent = 0);
    ~GLWindow();

    //....
    struct Drawable
    {
        GLuint     vertexBuffer;
        GLuint     indexBuffer;
        int        faceCount;
        QMatrix4x4 transform;
    }cube;
    GLuint cubeTex;

    Drawable CreateDrawable(GLfloat* C_vertices, GLfloat* C_tex, GLfloat* C_normals, GLushort* C_facedata, int faces);
    //.....
};
Run Code Online (Sandbox Code Playgroud)

在cpp文件中:

#include "glwindow.h"

Drawable GLWindow :: CreateDrawable(GLfloat *C_vertices, GLfloat *C_tex, GLfloat *C_normals, GLushort *C_facedata, int faces)
{
    int faceCount =faces;

    QMatrix4x4 Transform;
    Transform.setToIdentity();

    GLuint VB;
    /*Create vertexbuffer...*/

    GLuint IB;
    /*Create indexbuffer...*/

    Drawable …
Run Code Online (Sandbox Code Playgroud)

c++ qt

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

这两个C声明之间有什么区别?

我今天接受采访时被问到以下两个声明之间的区别:

int *A[10];
Run Code Online (Sandbox Code Playgroud)

int (*A)[10];
Run Code Online (Sandbox Code Playgroud)

我不知道.如果你认为我错过了一些重要的指针'指针',请告诉我.谢谢.

c

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

标签 统计

c ×2

qt ×2

3d ×1

block ×1

c++ ×1

depth-testing ×1

glut ×1

graphics ×1

opengl ×1

rebol ×1

rebol2 ×1

string ×1