gpt4 book ai didi

svg - 使用 GOB 的 Rebol 3 文本渲染问题

转载 作者:行者123 更新时间:2023-12-01 02:20:23 25 4
gpt4 key购买 nike

我试图在较低级别更好地理解 Rebol 3 图形(即不使用 R3-GUI)。我在绘制 gob 中呈现文本时遇到问题。

这有效:

REBOL []

par: make system/standard/para []

gob-svg: make gob! [ ;this GOB is just for SVG graphics
offset: 0x0
size: 640x480
draw: none
]

rt: bind/only [
size 18 para par text "This is a test!"
] import 'text

gob-svg/draw: bind compose/only [
box 20x20 50x50 1 text 100x100 640x480 anti-aliased rt
] import 'draw

view gob-svg

这不起作用:
REBOL []

par: make system/standard/para []

gob-svg: make gob! [ ;this GOB is just for SVG graphics
offset: 0x0
size: 640x480
draw: none
]

gob-svg/draw: bind compose/only [
box 20x20 50x50 1 text 100x100 640x480 anti-aliased (
bind/only compose [
size 18 para (par) text "This is a test!"
] import 'text
)
] import 'draw

view gob-svg

关于我做错了什么的任何想法?第二个脚本不应该在功能上等同于第一个吗?

谢谢。

最佳答案

Cyphre (Richard Smolak) 在 AltMe 上回答了我的问题。总结是我应该做一个绑定(bind)/仅 而不仅仅是 绑定(bind) .他还清理了我的示例,例如消除了不必要的组合。请参阅下面的完整回复:

ddharing:这是您的代码片段的工作版本:

par: make system/standard/para []

gob-svg: make gob! [;this GOB is just for SVG graphics
offset: 0x0
size: 640x480
draw: none
]

gob-svg/draw: bind/only compose/only [
box 20x20 50x50 1
text 100x100 640x480 vectorial (
bind [
size 18
para par
text "This is a test!"
] import 'text
)
] import 'draw

view gob-svg

为了更轻松地对 DRAW block 进行预处理,我建议使用我包含在 R3-GUI 中的方言预处理器。见这里: https://github.com/saphirion/r3-gui/blob/master/source/gfx-pre.r3 .

此代码也可以独立于 r3-gui 工作...只需在实际代码之前执行 gfx-pre.r3 脚本,然后您就可以使用 TO-TEXT 和 TO-DRAW 函数以方便您使用。

绘图预处理器使用“经典”DRAW 方言语法(无需使用命令!直接调用),因此您的代码示例可能如下所示:
do %gfx-pre.r3

par: make system/standard/para []

gob-svg: make gob! [;this GOB is just for SVG graphics
offset: 0x0
size: 640x480
draw: none
]

gob-svg/draw: to-draw [
box 20x20 50x50
text 100x100 640x480 vectorial [
size 18
para par
"This is a test!"
]
] copy []

view gob-svg

R3 DRAW 方言语法的引用可以在这里找到: http://www.rebol.com/r3/docs/view/draw.html .

关于svg - 使用 GOB 的 Rebol 3 文本渲染问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20935379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com