Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Racket 显示x&;y坐标与鼠标处理程序_Racket - Fatal编程技术网

Racket 显示x&;y坐标与鼠标处理程序

Racket 显示x&;y坐标与鼠标处理程序,racket,Racket,“图片程序”第10章(最后练习10.2.6)是我正在编写的书 我试图以线性方式使用书中介绍的内容。该练习需要在窗口上显示x&y坐标的动画 必须在不使用条件、循环、未提及的内置函数等的情况下执行此操作 我在编写鼠标处理程序处理同一表达式中的x-mouse和y-mouse时遇到问题 我想不出一种方法来跟踪它们(即…在同一个mh中)而不抛出错误 (define (number->image s) (text (string-append "(" (number->s

“图片程序”第10章(最后练习10.2.6)是我正在编写的书

我试图以线性方式使用书中介绍的内容。该练习需要在窗口上显示x&y坐标的动画

必须在不使用条件、循环、未提及的内置函数等的情况下执行此操作

我在编写鼠标处理程序处理同一表达式中的x-mouse和y-mouse时遇到问题

我想不出一种方法来跟踪它们(即…在同一个mh中)而不抛出错误

(define (number->image s)
  (text (string-append "(" (number->string s)")" "("(number->string s)   ")" ) 18 "blue"))

(define (show-coord s)
  (number->image s)))
 
(define (mh s mouse-x mouse-y me)
   (string->number (string-append
                    (number->string mouse-x)
                    (number->string mouse-y))))

(define (string-world s)
  (big-bang s 
    (check-with number?)
    (on-draw show-coord 200 200)
    (on-mouse mh)))

(string-world 0)

与其从鼠标处理程序返回数字,不如返回一个坐标列表?然后在调用
text
之前,可以将坐标列表转换为适当的字符串表示形式

由于世界状态现在是列表而不是数字,因此需要更改
check with
谓词:

#朗球拍
(需要图片程序)
(定义(坐标->图像)
(文本(字符串)附加“(”
(数字->字符串(第一个)
" "
(数字->字符串(秒))
")")
18“蓝色”))
(定义(显示坐标)
(协调->图像)
(定义(mh s mouse-x mouse-y me)
(列表鼠标-x鼠标-y))
(定义(字符串世界)
(大爆炸)
(与列表核对?)
(抽签显示coord 200)
(在鼠标mh上)
(字符串世界(0))
更新 OP说书中还没有介绍列表。好的。我们需要一些方法来返回我们想要显示的信息。让我们只返回一个字符串!不要忘了,
check with
谓词和初始世界状态必须匹配我们的新方法:

#朗球拍
(需要图片程序)
(定义(坐标->图像)
(文本s 18“蓝色”))
(定义(显示坐标)
(协调->图像)
(定义(mh s mouse-x mouse-y me)
(字符串附加“(”
(数字->字符串鼠标-x)
" "
(数字->字符串鼠标-y)
")"))
(定义(字符串世界)
(大爆炸)
(用字符串检查?)
(抽签显示coord 200)
(在鼠标mh上)
(字符串世界“”)

我喜欢你的方法,但是这个练习是基于书中以前学到的知识,列表还没有被使用。@WonderingMinds--好吧,你可以在鼠标处理程序中构造一个字符串并将其返回到世界状态。我更新了我的答案来说明这一点。我认为这是我在这个练习中寻找的最佳答案现在就开始吧。