【问题标题】:Scribble programming in gtk3gtk3 中的涂鸦编程
【发布时间】:2013-12-23 10:58:44
【问题描述】:

如何使用gtk-3构建一个涂鸦程序。我在gtk-3官网找到了例子,但是在绘制它时使用cairo_rectangle来绘制用户输入。与 gtk-2 中的 gtk_draw_lines() 相比,它非常慢。 Cairo 函数无法逐像素捕获数据。

我想要什么,gtk-3 中是否有任何功能可以更快地绘制,能够捕获 (x,y) 点并在我的绘图区域中逐个像素地绘制该点?

【问题讨论】:

标签: gtk cairo gtk3


【解决方案1】:

gdk_draw_lines 的文档表明它已被弃用,因为很久以前所有绘图都已委托给 cairo。文档告诉您可以使用cairo_line_to 连接您的点,并使用cairo_stroke 在这些点之间画一条线。

附录:

Cairo 是一个矢量图形库:根据设计和目的,它并非旨在进行逐像素访问。但是,您可以通过更改变换矩阵来欺骗它,使其反映您的像素坐标。看看CTM (Current Transformation Matrix) modification functions,尤其是cairo_scale。您可以在 GtkDrawingAreaconfigure-event 中看到它的大小变化时收到通知,并有机会相应地修改 CTM。

【讨论】:

  • 我也试过用 cairo_line_to 和 cairo_stroke 在绘图区绘制。但同样的问题,不能逐像素绘制....
  • 我刚刚添加了有关如何进行某种逐像素访问的信息。
猜你喜欢
  • 2016-05-20
  • 2013-07-29
  • 1970-01-01
  • 1970-01-01
  • 2022-10-25
  • 1970-01-01
  • 1970-01-01
  • 2012-02-27
  • 1970-01-01
相关资源
最近更新 更多