hb-append vs hbl-append和ht-append vs htl-append in pict

时间:2018-03-30 19:14:10

标签: image racket

球拍的pict有几个combinators for combining other pictures。这些文档包含一个关于其*-append组合器如何工作的好表:

Pict Combinator examples

大多数这些例子都有意义。垂直和水平的第一个字母分别为vh。第二个字母为ltr表示纵向左/中/右,或t c b表示水平机顶/中心/底部。

但是,这会遗漏htl-appendhbl-append。它们都不适合这种模式。此外,它们似乎都匹配表中的hb-append

那么,htl-appendhbl-append的用途是什么,它与hb-append的区别如何?

2 个答案:

答案 0 :(得分:4)

我在文档中写了这个例子,所以我想这是我的错,所以我会尝试回答这个问题。

这个例子没有很好地说明差异,因为它使用的是形状,而不是文字。

更改示例以使用text + shapes表明这些函数之间存在一些差异:

#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))

答案 1 :(得分:0)

slideshow tutorial使用这张图片来解释hbl-appendhtl-append

enter image description here

(使用hb-appendht-append,每个图片周围的框架将对齐。)