小编Gri*_*son的帖子

使用opengl硬件渲染器导出带有颜色条的MATLAB冲浪图会导致png文件损坏

当我使用MATLAB的颜色条将2D曲面图导出到png文件时,当我使用opengl硬件渲染器时会导致图像损坏,如下所示:

从MATLAB导出损坏的曲面图png

其他一切都很好.但是在我创建了一个带有颜色条的图形之后,我导出到png文件的所有其他表面图都被破坏了,即使它们不包含任何颜色条.

opengl info 在MATLAB中给出以下输出:

    Version         = 3.0 Mesa 10.1.0
    Vendor          = Intel Open Source Technology Center
    Renderer        = Mesa DRI Intel(R) Haswell Desktop 
    MaxTextureSize  = 8192
    Visual          = 0x20 (TrueColor, depth 24, RGB mask 0xff0000 0xff00 0x00ff)
    Software        = false
    # of Extensions = 190

    Driver Bug Workarounds:
    OpenGLBitmapZbufferBug    = 0
    OpenGLWobbleTesselatorBug = 0
    OpenGLLineSmoothingBug    = 0
    OpenGLClippedImageBug     = 0
    OpenGLEraseModeBug        = 0
Run Code Online (Sandbox Code Playgroud)

我尝试了所有这些OpenGL的解决方法,但没有任何帮助.

有谁知道如何解决这个问题?

我的系统:

  • 内核:3.13.0-24-通用64位
  • Prozessor:Intel Haswell i7 4770K
  • 图形:Intel HD 4000
  • MATLAB版本:R2013b

在我的同事的计算机上,这是完全一样的,但有一个不同的操作系统(debian wheezy)这个问题没有出现.在他的电脑上opengl info …

opengl matlab plot colorbar

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

如何将静态2D数组的指针传递给结构/类?

当我尝试将数组的指针(包含程序中某些函数所需的参数)传递给结构时,我遇到了问题,然后应该将结果传递给这些函数.例如,GSL希望我以这种方式传递参数.

一个小例子程序看起来像这样:

#include <iostream>

using namespace std;

struct myparams
{
    double  * a;
    double ** b;
};

int main()
{
    double c[10]   = {0,1,2,3,4,5,6,7,8,9};
    double d[4][3] = {{1,2,3},{4,5,6},{7,8,9},{10,11,12}};

    double** e = new double*[4];
    for (int i = 0; i < 4; i++) {
       e[i] = new double[3];
    }

    myparams params;

    // THIS WORKS:
    params.a = c;
    for (int i = 0; i < 10; i++) {
        cout << params.a[i] << endl;
    }

    // THIS DOESN'T WORK
    params.b = d;

    // …
Run Code Online (Sandbox Code Playgroud)

c++

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

标签 统计

c++ ×1

colorbar ×1

matlab ×1

opengl ×1

plot ×1