关于超显示,你应该知道的一切

页面
参与者: 液体的灵魂
受欢迎的 最喜欢的 1

基本绘图功能

,避免……的严重情况infoxicity最好从一次显示一点点开始。您需要了解的前两件事是如何处理颜色以及如何以最小形式使用绘图函数。

颜色HyperDisplay

显示进来,好吧,各种形状和颜色!从单色液晶显示器和oled到全彩TFT和LED显示器,更不用说独特的三色电子纸显示器,有很多东西要讲。由于HyperDisplay是为适应所有这些显示而设计的,我们必须考虑如何表示用户可能选择的所有颜色。我们如何解决这个问题?用三个字节表示红色,绿色,每个像素的蓝色通道当然足以代表当前显示技术所能显示的所有颜色,但是对于像点阵显示器这样可以在相同的空间中存储24像素信息的显示器来说,这就有点大材小用了。

解决方案是将颜色的表示留给特定于硬件的层。尽管如此,顶级的超显示函数至少需要知道在哪里可以找到关于颜色的信息。这自然会导致在HD函数中使用指针作为颜色参数。在代码中是这样的:

语言:c//使hawrdwarf特定颜色变量myColor0 =红色的方法;//使用一个预定义的常量或另一个colorhwColor myColor1 = 0x01;//指定单字节值(如果适用)hwColor myColor2 = {0x00,0 x00,…,0 x00};指定结构(如果适用)中每个字节的值hwColor myColor3 = converterFunctionRGB(redVal,greenVal,blueVal);//使用一个基于输入返回所需颜色的函数//将您的颜色设置为超显示颜色pointercolor_t myHDColor = (color_t)&myColorN;//“&”代表你的颜色在记忆中的位置,然后(color_t)将该位置转换为HD颜色类型

简单的图纸使用

在最简单的情况下,要画一些东西,你需要知道在哪里画,用什么颜色。你可以画单个像素,x或y线,点对点的线路,矩形,圈,甚至多边形!你也可以一下子用某种颜色填充整个窗口。

坐标是零索引的,因此第一个像素是数字0(在x或y方向上),屏幕上的最后一个像素是N-1,当你在给定的方向上有N个像素时。坐标的变量类型是'hd_extent_t',它被指定为一个浮点数,因此传入的任何数字都可以工作。

以下是你可以使用的基本功能:

  • 像素(x0,y0,颜色)
    • 将像素设置为(x0,y0的颜色颜色
  • 参照线(x0,y0,长度,颜色)
    • 从(x0,y0)(x0+ (长度- 1),y0),颜色
  • yline(x0,y0,长度,颜色)
    • 从(x0,y0)(x0,y0+ (长度- 1))与颜色
  • (x0,y0,x1,日元,宽度,颜色)
    • 从(x0,y0)(x1,日元),颜色宽度
  • 矩形(x0,y0,x1,日元,填满,颜色)
    • 在(x0,y0),(x0,日元),(x1,y0),和(x1,日元)这是可选的填满in (when 'true') with颜色
  • (x0,y0,半径,填满,颜色)
    • 画一个以(为中心的圆x0,y0),半径这是可选的填满颜色
  • 多边形(x[],y[],numSides,宽度,颜色)
    • 连接numSidesnumSides s处于闭合状态宽度颜色x[]y[]应该是表示坐标的浮点数数组吗
  • fillWindow(颜色)
    • 填充整个当前窗口颜色

多亏了c++的自动浇注,你可以把任何数值变量代入xy参数,除了在多边形函数中,在这种情况下,它们需要是这种类型的hd_extent_t

这些函数还支持默认值——例如亚博国际官网颜色永远不需要指定。如果离开,HyperDisplay将使用“当前”颜色的窗口,可以使用:

  • setCurrentWindowColorSequence (颜色)

此外,的填满参数将默认为“false”和宽度参数将默认为“1”。

TFT示例的基本绘图输出

设置当前窗口颜色的函数提示了下面将要讨论的一些更高级的特性,尤其是为什么我们说“颜色序列”而不仅仅是“颜色”。请查看下一节以找出答案!