我在gtk-3官方网站上找到了一个例子,但它在绘图时使用cairo_rectangle来绘制用户输入。与gtk-2中gtk_draw_lines()相比,它非常慢。Cairo函数无法逐个像素地捕获数据。
我想要的是,gtk-3中有没有什么函数可以更快地绘制,能够捕获(x,y)点,并在我的绘制区域中逐个像素地绘制该点?
发布于 2013-12-26 18:19:34
gdk_draw_lines的文档告诉我们它已经被弃用了,因为所有的绘图很久以前就已经委托给cairo了。文档告诉您,您可以使用cairo_line_to连接点,使用cairo_stroke在这些点之间绘制一条线。
附录:
Cairo是一个矢量图形库:按照设计和设计的目的,它不是针对每个像素进行访问的。但是,您可以通过更改变换矩阵来欺骗它,使其反映像素坐标。看一看CTM (Current Transformation Matrix) modification functions,特别是cairo_scale。您可能会捕获GtkDrawingArea的configure-event,以便在其大小发生变化时收到通知,并有机会相应地修改CTM。
https://stackoverflow.com/questions/20742117
复制相似问题