无法在树莓派上用c++绘制
Unable to Draw in C++ on Raspberry Pi
多亏了一些人的帮助,我已经成功地编译并运行了下面的程序,但是尽管它一直在咕嘟咕嘟地响,我还是看不到Pi的屏幕上画了什么。
我不认为这是使用openvg和ajstarks代码所特有的问题,因为在我编译测试程序的问题期间,我尝试了一种不同的编写图像的方式(对不起,我所记得的是它是低级别的,不需要openvg的包含)。这需要一些搜索和重写才能使它编译,当它完成时,同样的事情发生了。
我坚持了一会儿,但毫无进展。有一些关于树莓派和X Windows的限制导致了同样的问题。你画了一些东西,但它不显示。考虑到有几个评论暗示openvg可以工作,我回到了它,并(感谢一个叫Ross的家伙)最终解决了为什么我不能编译代码。所以现在我在一个点上,我可以编译代码,其他人必须成功运行,但它不会在屏幕上绘制任何东西。我知道代码可以运行——它消耗了CPU周期(官方的演示确实如此,我的演示虽然还在运行,但不那么消耗CPU周期),而且代码可以退出
另一种处理图形的方法遇到了同样的无输出显示问题,所以我认为问题是在我的Pi上的某个地方,但我对如何解决X窗口(或者它可能是X11,希望我保持标签打开!)画了空白,不想画问题。
任何帮助都非常感激,提前感谢!
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
extern "C" {
#include "VG/openvg.h"
#include "VG/vgu.h"
#include "fontinfo.h"
#include "shapes.h"
}
using namespace std;
int main (void) {
int width, height;
VGfloat w2, h2, w;
char s[3];
init(&width, &height); // Graphics initialization
w2 = (VGfloat)(width/2);
h2 = (VGfloat)(height/2);
w = (VGfloat)w;
Start(width, height); // Start the picture
Background(0, 0, 0); // Black background
Fill(44, 77, 232, 1); // Big blue marble
Circle(w2, 0, w); // The "world"
Fill(255, 255, 255, 1); // White text
TextMid(w2, h2, "hello, world", SerifTypeface, width/10); // Greetings
End(); // End the picture
fgets(s, 2, stdin); // Pause until RETURN]
finish(); // Graphics cleanup
exit(0);
}
Ok…
多亏了运气,我找到了答案,这很奇怪。对我来说……如果其他人遇到这个问题,这里是(部分)解决方案,它会导致另一个问题很快发布。
我正试图在我的学校运行一个编程俱乐部,这是不实际的物理连接Pi的kb,鼠标和显示器,所以他们都自动运行VNC,我们使用Ultra-VNC连接到机器。程序在共享目录中编写,Eclipse c++在主机上运行;因此,所有的程序输出都是通过VNC查看的。
我一直在继续尝试解决这个问题,有一次连接了键盘和鼠标,并注意到它们似乎被识别(激光出现,Caps Lock切换等),但它们在移动/键入时没有做任何事情。
最后,当我越来越困惑为什么其他人没有遇到这个问题时,硬币开始在边缘打滑。似乎很奇怪,没有其他人有这个问题,然后我开始想知道更多关于kb/mouse问题。
我试着把HDMI输出插入家里的显示器(学校的仍然是模拟d-sub!),你瞧,物理kb和鼠标工作了。然后事情变得很奇怪!
不知怎么的,我有两个桌面同时运行。其中一个由物理键盘和鼠标控制,另一个由VNC控制。有趣的是,VNC的标题Pi的X桌面表明图形问题可能与X有关,但我不确定原因如下。
如果我在"物理"桌面启动终端窗口,它不会显示在"VNC"桌面,反之亦然-它们似乎是独立的,尽管这并不完全正确。
当我在"物理"桌面运行测试文件时,它工作得很好,可以只使用物理kb来控制。当我在"VNC"桌面运行它时,它只能用VNC kb来控制,但输出显示在物理屏幕上。
我真的不明白!
因此,这回答了最初的问题,因为程序确实在Pi上运行。
去张贴(希望是最后一个)关于如何让VNC显示"物理"桌面或如何将图形输出目标到"正确"桌面的问题。
- QuadTree只在窗口的右上角绘制
- 绘制旋转的三角形
- flutter:即使shouldRepaint()返回true,自定义画家也不会重新绘制
- 如何在QT中的自定义视频小工具t上绘制矩形
- 如何在Visual Basic中使用矩形函数OpenGL绘制矩形
- 无法使用VAO和EBO(openGL)绘制多个对象
- 为什么我的点没有在 OpenGL 中绘制鼠标所在的位置?
- 绘制顺时针三角形,重新排序点
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- SFML 文本未绘制在窗口上
- 如何在快板的屏幕中显示子位图的绘制?
- 如何绘制自定义形状的元素?
- QPainter 将 QBrush 设置为 在 QT/C++ 中绘制文本
- 除非重新绘制大小,否则SDL_Texture在调整大小后呈现黑色
- 绘制文本问题
- 在 QT C++中绘制/操作多边形
- 如何在 Gnuplot 中分别绘制 2 个文件数据?我有一个文件"sin.txt",另一个文件"cos.txt",我想将它们分别绘制在一个图表上
- 在现代OpenGL中,绘制GL_TRIANGLE奇怪的z轴行为的填充圆
- OpenGL 着色器不绘制任何东西 - 糟糕的精灵类
- 要在屏幕上绘制一些小瓷砖,我应该使用 QQuickItem 还是 QQuickPaintedItem?