如何使用gtk-3构建一个涂鸦程序。我在gtk-3官方网站上找到了例子,但是在绘图时它使用cairo_rectangle来绘制用户输入。与gtk-2中的gtk_draw_lines()相比,它非常慢。开罗功能无法逐像素捕获数据。
我想要的是,gtk-3中是否有任何函数可以更快地绘制,能够捕获(x,y)点并在绘制区域中按像素到像素绘制点?
答案 0 :(得分:0)
gdk_draw_lines
的文档告诉它已被弃用,因为很久以前所有的绘图都已委托给cairo。文档告诉您可以使用cairo_line_to
来连接您的积分,并cairo_stroke
在这些积分之间划一条线。
<强>附录:强>
Cairo是一个矢量图形库:根据设计和目的,它并非设计用于按像素进行像素访问。但是,您可以通过更改变换矩阵来欺骗它,以便它反映您的像素坐标。请查看CTM (Current Transformation Matrix) modification functions,特别是cairo_scale
。您可以抓住configure-event
的{{1}},以便在其大小发生变化时收到通知,并有机会相应地修改CTM。