首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >套餐套餐(球拍)

套餐套餐(球拍)
EN

Stack Overflow用户
提问于 2016-01-24 12:15:37
回答 1查看 550关注 0票数 1

我正在尝试设计一个名为add-frame的函数,它接受一张图像,并在所有四个边都用一个像素的黑色边框包围它。这就是我所拥有的:

代码语言:javascript
复制
(define (horizontal-line x)
(line x 0 "black"))

(define (vertical-line x)
(line 0 x "black"))

(define (add-left-border height design color)
  (overlay/align "left" "top"
                 (vertical-line height)
                 (square height design color)))

(define (add-right-border height design color)
  (overlay/align "right" "top"
                 (vertical-line height)
                 (square height design color)))

(define (add-top-border height design color)
  (overlay/align "right" "top"
                 (horizontal-line height)
                 (square height design color)))

(define (add-bottom-border height design color)
  (overlay/align "right" "bottom"
                 (horizontal-line height)
                 (square height design color)))

(define (add-frame height design color)
  (overlay (square height design color)
           (add-left-border height design color)
           (add-right-border height design color)
           (add-top-border height design color)
           (add-bottom-border height design color)))

当我运行"add-frame“时,返回的是一个只有左边框的正方形图像。如何使边框的其余部分显示在返回的正方形上?

EN

回答 1

Stack Overflow用户

发布于 2016-01-25 04:29:16

此表达式

代码语言:javascript
复制
(overlay/align "left" "top"
               (vertical-line height)
               (square height design color))

将正确地在正方形的左侧添加一条垂直线。

这是一个表达式

代码语言:javascript
复制
(overlay/align "right" "top"
               (vertical-line height)
               (square height design color))

将正确地在正方形的右侧添加一条垂直线。

然而,如果你把这两个图像放在一起,那么由于它们的大小相同,你只能看到顶部的那个。

要解决这个问题(部分地),你可以在正方形的另一边添加一条透明线。

更好的解决方案是传递要添加线条的图像。

也就是说,将add-left-border更改为:

代码语言:javascript
复制
(define (add-left-border height design color image)
  (overlay/align "left" "top"
                 (vertical-line height)
                 image))

这将在图像顶部添加左侧边框。

如下所示:

代码语言:javascript
复制
(define (horizontal-line x)
  (line x 1 "black"))

(define (vertical-line x)
  (line 1 x "black"))

(define (add-left-border height design color image)
  (overlay/align "left" "top"
                 (vertical-line height)
                 image))

(define (add-right-border height design color image)
  (overlay/align "right" "top"
                 (vertical-line height)
                 image))

(add-left-border 80 "solid" "red"
                 (add-right-border 80 "solid" "red"
                                   (circle 40 "solid" "red")))

注意:最好在镜像上使用image-widthimage-height,以便自动获得正确的大小。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34972150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档