Graphics 在Cairo中创建可变宽度笔划

Graphics 在Cairo中创建可变宽度笔划,graphics,drawing,line,cairo,stroke,Graphics,Drawing,Line,Cairo,Stroke,Cairo中的stroke()将单个指定宽度的笔划应用于线路径 我想画一条不同宽度的路径(用户画得快时越细,画得慢时越厚)。在Cairo可以这样做吗?使用Cairo\u set\u line\u width进行设置,并将路径“拆分”为多个部分。不幸的是,正如您所注意到的,cairo_set_line_width是整个当前路径的宽度(因为它将属性设置为您正在选择一支笔来绘制该路径): «与其他笔划参数一样,当前线宽由cairo_stroke()、cairo_stroke_extents()和ca

Cairo中的stroke()将单个指定宽度的笔划应用于线路径


我想画一条不同宽度的路径(用户画得快时越细,画得慢时越厚)。在Cairo可以这样做吗?

使用
Cairo\u set\u line\u width
进行设置,并将路径“拆分”为多个部分。不幸的是,正如您所注意到的,cairo_set_line_width是整个当前路径的宽度(因为它将属性设置为您正在选择一支笔来绘制该路径):


«与其他笔划参数一样,当前线宽由cairo_stroke()、cairo_stroke_extents()和cairo_stroke_to_path()检查,但在路径构造过程中没有任何影响。»

对于我想要绘制的那种非常平滑地改变线宽的图形,这将变得非常低效。使用这种方法,我将绘制尽可能多的线段,因为线段是像素长的。。。如果你需要书法效果,需要一些其他类型的绘图工具;事实上,我怀疑你必须自己做。但是也要考虑这个解决方案:绘制“轮廓/边框”并填充,而不是!ops忘记了您是否遵循用户输入。。。但如果是这样的话,沪指的缓慢。这种方法如此不可接受?