如何绘制“弯曲”线?

丹尼尔

问题很简单,正如标题所说。

Tizen的文档对此主题(包括其他主题)确实不可靠。

例如,如他们在此处所述

绘制SVG路径。您可以使用efl_gfx_utils.h中的api来构造路径

...

efl_gfx_path_append_circle(&path_cmd, &points);

efl_gfx_utils.h不是在Tizen5.5的SDK中。

他们还删除了以下功能:evas_vg_shape_append_move_toevas_vg_shape_append_line_to

所以现在的问题仍然是,我怎么能画一个曲线到preferrablyEvas_Object

苏亚

在6.0中,您可以使用这些API。在6.0中进行开发怎么样?

另一种建议的方法是使用开罗。有关更多详细信息,请参见此处。https://docs.tizen.org/application/native/guides/graphics/cairo/

我在5.5中测试了以下代码。并且我检查了该代码是否有效。

int w = 360, h = 360;
Evas_Object *img = evas_object_image_filled_add(evas_object_evas_get(ad->win));
elm_win_resize_object_add(ad->win, img);
evas_object_image_content_hint_set(img, EVAS_IMAGE_CONTENT_HINT_DYNAMIC);
evas_object_image_size_set(img, w, h);
evas_object_image_colorspace_set(img, EVAS_COLORSPACE_ARGB8888);
evas_object_image_alpha_set(img, 0);
evas_object_show(img);

cairo_surface_t *cairo_surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, w, h);
cairo_t *cairo = cairo_create(cairo_surface);
/* Cairo drawing */
cairo_set_source_rgba(cairo, 1.0, 0.0, 0.0, 1.0);
cairo_arc(cairo, 30, 150, 100 * sqrt(2), -0.25 * M_PI, 0.25 * M_PI);
cairo_close_path(cairo);
cairo_stroke(cairo);
cairo_surface_flush(cairo_surface);
unsigned char *imageData = cairo_image_surface_get_data(cairo_surface);
if(imageData){
    evas_object_image_data_set(img, imageData);
    evas_object_image_data_update_add(img, 0, 0, w, h);
}

在此处输入图片说明

希望这种方式对您有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章