球拍的pict,有几个组合其他图片的组合器。这些文档包含一个很好的表,用于说明它的*-append组合器的工作方式:

大多数这些例子都是有道理的。第一个字母是v或h,分别表示垂直字母和水平字母。第二个字母是l、t或r,用于垂直左/中/右,或t c b,用于水平顶/中/底。
然而,这忽略了htl-append和hbl-append。它们都不符合这种模式。此外,它们似乎都与表上的hb-append相匹配。
那么,htl-append和hbl-append是用来做什么的,它与hb-append有什么不同?
发布于 2018-03-31 22:32:59
我在文档中写了这个例子,所以我想这是我的错,所以我会尝试回答这个问题。
这个例子没有很好地说明这种区别,因为它使用的是形状,而不是文本。
将示例更改为使用文本+形状显示,这些函数之间存在一些差异:
#lang racket
(require pict)
(inset
(cbl-superimpose
(hb-append 10
(frame (text "g" "Helvetica" 30))
(rectangle 10 10 #:border-width 2))
(hline 200 2))
10)
(blank 1 30)
(inset
(cbl-superimpose
(hbl-append 10
(frame (text "g" "Helvetica" 30))
(rectangle 10 10 #:border-width 2))
(hline 200 2))
10)
(blank 1 30)
(inset
(ctl-superimpose
(ht-append 10
(frame (text "i" "Helvetica" 30))
(rectangle 10 10 #:border-width 2))
(hline 200 2))
10)
(blank 1 30)
(inset
(ctl-superimpose
(htl-append 10
(frame (text "i" "Helvetica" 30))
(rectangle 10 10 #:border-width 2))
(hline 200 2))
10)如果您运行此示例,您将得到4张显示不同情况的图片。根据字母的不同,你会得到不同的对齐,因为上升/下降。对于文档来说,展示一个类似于文本的示例可能会更有用。
如果您想要混合图片和文本,那么使用l-变体来避免图片突出的奇怪外观通常是有意义的:
#lang racket
(require pict)
(hb-append 10
(text "hug" "Helvetica" 30)
(rectangle 20 20 #:border-width 2)
(text "hug" "Helvetica" 30))
(hbl-append 10
(text "hug" "Helvetica" 30)
(rectangle 20 20 #:border-width 2)
(text "hug" "Helvetica" 30))发布于 2019-10-28 16:14:16
https://stackoverflow.com/questions/49580092
复制相似问题