gpt4 book ai didi

c++ - 如何在 Qt 中保存 3DSurface?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:05:31 24 4
gpt4 key购买 nike

我正在尝试将 3DSurfaces 保存为 PDF 文件。曲面图定义如下

Q3DSurface *surface = new Q3DSurface;
surface->addSeries(mySeries);
QWidget *container = QWidget::createWindowContainer(surface);

我正在使用以下代码将容器小部件写入 PDF 文件。

QPrinter printer(QPrinter::HighResolution);

printer.setOutputFormat(QPrinter::PdfFormat);
printer.setOutputFileName("output.pdf");

QPainter painter(&printer);

double xscale = printer.pageRect().width() / double(container->width());
double yscale = printer.pageRect().height() / double(container->height());
double scale = qMin(xscale, yscale);
painter.translate(printer.paperRect().x() + printer.pageRect().width()/ 2,
printer.paperRect().y() + printer.pageRect().height()/2);
painter.scale(scale, scale);
painter.translate(-main->width()/ 2, -main->height()/ 2);
container->render(&painter);

这将保存一个带有容器大小的灰色补丁的 PDF 文件,但表面本身不会复制到文件中。非常感谢所有帮助。

最佳答案

我找到了更好的问题答案。 Q3DSurface继承了QAbstract3DGraph类的renderToImage函数,可以如下使用将surface渲染成图像文件:

Q3DSurface *surface = new Q3DSurface;
surface->addSeries(mySeries);

QImage image = surface->renderToImage();
image.save("output.png");

关于c++ - 如何在 Qt 中保存 3DSurface?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51031313/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com