首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >波形小部件Touchgfx

波形小部件Touchgfx
EN

Stack Overflow用户
提问于 2019-12-11 22:57:22
回答 1查看 627关注 0票数 0

我正在用TouchGFX创建一个波形小部件,但不确定如何最好地在结束时将波形循环回零,因为有三个帧缓冲区,所以你必须在一个区域内无效三次,否则会出现闪烁。如何处理将数组循环回到开始位置(x=0)。

主要问题是我的代码最初假设只有一个帧缓冲区。我认为我的代码需要针对三个帧缓冲区进行重构,或者添加直接写入帧缓冲区的功能。任何提示都将不胜感激。

代码语言:javascript
复制
  bool Graph::drawCanvasWidget(const Rect& invalidatedArea) const
  {
if (numPoints < 3)
{
    // A graph line with a single (or not even a single) point is invisible
    return true;
}
else{

Canvas canvas(this, invalidatedArea);   
for (int index = 0; index < (numPoints-1); index++)
{
    canvas.moveTo(points[index].x,points[index].y);
    canvas.lineTo(points[index].x,points[index+1].y);
    canvas.lineTo(points[index+1].x,points[index+1].y);
    canvas.lineTo(points[index+1].x,points[index].y);       
}
return canvas.render(); // Shape above automatically closed
}
return true;
  }

  void Graph::newPoint(int y)
  {
    if(numPoints==501){
        numPoints=0;
    }else if ((maxPoints-numPoints)<=20){
    points[numPoints].x = numPoints;
    points[numPoints].y = y;
    Rect minimalRect(480,0,20,100);
    invalidateRect(minimalRect);            
    numPoints++;
    }else{
    points[numPoints].x = numPoints;
    points[numPoints].y = y;
    Rect minimalRect(numPoints-3,0,20,100);
    invalidateRect(minimalRect);
    numPoints++;
    }

  }
EN

回答 1

Stack Overflow用户

发布于 2020-10-09 02:55:27

随着TouchGFX 4.15.0 (刚刚发布)的发布,TouchGFX设计器现在支持一个图形小部件(以前只能在演示中的源代码中找到),它可以用来生成波形。它有一些更优雅的插入点方法,可以满足你的需要。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59288534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档