硬汉嵌入式论坛

 找回密码
 立即注册
查看: 779|回复: 4
收起左侧

[ThreadX全家桶] guix不能绘椭圆哪位碰到过?

[复制链接]

5

主题

31

回帖

46

积分

新手上路

积分
46
发表于 2023-4-10 19:40:48 | 显示全部楼层 |阅读模式
本帖最后由 哲学家 于 2023-4-10 19:43 编辑

跟着硬汉大佬教程,参考2d绘图例程,在画布上绘制图形,直线、多边形、三角形圆形都正常,一旦画椭圆就是图里的样子,两条横杠横穿我的屏幕,好气!

截图

截图
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107582
QQ
发表于 2023-4-11 09:17:47 | 显示全部楼层
你的椭圆怎么绘制的,贴代码。
回复

使用道具 举报

5

主题

31

回帖

46

积分

新手上路

积分
46
 楼主| 发表于 2023-4-11 09:59:49 | 显示全部楼层
eric2013 发表于 2023-4-11 09:17
你的椭圆怎么绘制的,贴代码。

[C] 纯文本查看 复制代码
VOID _cbWindow0(GX_WINDOW *widget)
{
    GX_RECTANGLE drawto;
    GX_RECTANGLE tempdraw;     
    GX_CANVAS *mycanvas; 
    GX_POINT my_polygon[3] = { { 150, 210 }, { 250, 210 }, { 200, 260 } };
    

    /* 默认的窗口绘制回调函数,即默认界面效果绘制 */
    gx_window_draw(widget);

    /* 定义一个矩形框,后续的2D绘制函数都是在这个矩形范围内绘制的 */
    gx_utility_rectangle_define(&drawto,
                                10,     /* x0 */
                                100,    /* y0 */
                                400,    /* x1 */ 
                                265);   /* y1  */
 
    /* 返回窗口对应的canvas画布 */
    gx_widget_canvas_get(widget, &mycanvas);
    
    /* 
      在指定的画布上启动绘图。此功能在内部被延迟绘图算法调用,GUIX在需要画布时自动执行更新。 
      但是允许应用程序绕过延期绘图算法并立即执行。
      首先调用gx_canvas_drawing_inititate在画布上绘画。
      然后调用所需的绘图函数,最后然后调用gx_canvas_drawing_complete即可。
    */
    gx_canvas_drawing_initiate(mycanvas, widget, &drawto);

    /* 设置笔刷画线的颜色值 */
    gx_context_raw_line_color_set(0xffff0000);

    /* 设置笔刷填充的颜色值 */   
    gx_context_raw_fill_color_set(0xff00ffff);

    /* 通过GX_BRUSH_SOLID_FILL使能圆圈,矩形,多边形等绘制为填充效果 */
    gx_context_brush_style_set(GX_BRUSH_SOLID_FILL);

    /* 设置笔刷线宽 */
    gx_context_brush_width_set(1);


    /* 绘制直线 */
    gx_canvas_line_draw(10, 100, 400, 100);
    gx_canvas_line_draw(10, 100, 10, 265);
    gx_canvas_line_draw(10, 265, 400, 265);
    gx_canvas_line_draw(400, 100, 400, 265);
    
    /* 绘制圆圈 */
    gx_canvas_circle_draw(120, 150, 50);//xcenter:圆心的 X 坐标 ycenter:圆心的 Y 坐标 r:圆半径
    /* 绘制直线 */
    gx_canvas_line_draw(10, 100, 50, 150);
    /* 绘制椭圆 */
    gx_canvas_ellipse_draw(290, 153, 30, 25);//xcenter:椭圆形中心的 X 坐标 ycenter:椭圆形中心的 Y 坐标 a:半长轴的长度 b:半短轴的长度
    /* 绘制多边形 */
    gx_canvas_polygon_draw(my_polygon, 3); 

//    /* 绘制矩形 */
    tempdraw.gx_rectangle_left = 30; 
    tempdraw.gx_rectangle_top = 210; 
    tempdraw.gx_rectangle_right = 100; 
    tempdraw.gx_rectangle_bottom = 260;
    gx_canvas_rectangle_draw(&tempdraw);

    /* 用于强制立即绘制,注意,务必和gx_canvas_drawing_initiate成对调用 */
    gx_canvas_drawing_complete(mycanvas, GX_TRUE);
}

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107582
QQ
发表于 2023-4-11 13:18:21 | 显示全部楼层
帮你测试了,没问题

下载.png
回复

使用道具 举报

5

主题

31

回帖

46

积分

新手上路

积分
46
 楼主| 发表于 2023-4-11 22:23:25 | 显示全部楼层
eric2013 发表于 2023-4-11 13:18
帮你测试了,没问题

感谢大佬。我继续找问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-6-6 23:12 , Processed in 0.228170 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表