如何从 VID 内部进行动态绘图

How to do dynamic drawing from inside of VID

我有一些代码可以从 VID 内部进行绘图。人们建议使用 draw block 在 VID 中使用它。我在这里尝试这样做,但可能不正确。

下面是一些代码,展示了我正在尝试做的事情的基本思想。

Red [Needs: 'View]
Consolas: make font! [size: 11 name: "Consolas" style: 'bold]
win: [ size 600x400

a: area 460x400 rate 0:0:3 on-time [

        a/draw [
            font Consolas
            text 10x20  "Miter"
            text 170x20 "Round"
            text 330x20 "Bevel"
        ]
    ]
]
view win

此代码不会产生任何错误,但不会进行任何绘图。 我怎样才能更改代码以实际进行绘图?

这里的关键是我试图根据其他因素有条件地进行绘图,这将有助于确定应该绘制什么。但是如果我不能让它工作,就没有希望添加逻辑。

这是您的代码的正确版本:

Red [Needs: 'View]

Consolas: make font! [size: 11 name: "Consolas" style: 'bold]

view [
    size 600x400
    a: base 460x400 draw [
        font Consolas
        text 10x20  "Miter"
        text 170x20 "Round"
        text 330x20 "Bevel"
    ]
]

我做了以下修改:

  • area创建了一个不支持绘图的文本区域原生widget,所以被base替换为支持绘图的通用人脸
  • rate 0:0:3on-time 处理程序一起创建一个计时器,每 3 秒计算一次处理程序,因此在这里无关紧要。
  • a/draw 不是正确的 syntax,无法将绘图块指定为 VID 中面定义的选项。
  • 删除了win:字设置,在这种情况下,为了简单起见,VID块直接馈送到view

如果您在学习 Red 及其 GUI 系统方面需要更多帮助,可以加入我们的 Gitter help room