Racket 什么';我的动画位置图像程序有什么问题?

Racket 什么';我的动画位置图像程序有什么问题?,racket,Racket,我一直在研究球拍中的这段代码,使火箭上升,这取决于你们在火箭电影中输入的角度。我认为我的数学有问题,因为动画场景中的火箭一直朝着错误的方向飞行。但我似乎不知道到底是什么地方出了问题。唯一有效的方向是20度。火箭图像本身呈90度角。有谁能帮我做这个地方形象公式吗?我不知道怎么了 谢谢你抽出时间 #lang racket (require 2htdp/image) (require 2htdp/universe) (require rackunit) ;; (make−takeoff angle)

我一直在研究球拍中的这段代码,使火箭上升,这取决于你们在火箭电影中输入的角度。我认为我的数学有问题,因为动画场景中的火箭一直朝着错误的方向飞行。但我似乎不知道到底是什么地方出了问题。唯一有效的方向是20度。火箭图像本身呈90度角。有谁能帮我做这个地方形象公式吗?我不知道怎么了

谢谢你抽出时间

#lang racket
(require 2htdp/image)
(require 2htdp/universe)
(require rackunit)

;; (make−takeoff angle) −> (−> natural−number/c image?)
;; angle : exact−integer?

(define make-takeoff
    (lambda (angle)
        (let ([side-length 400])
            (let ([the−background (square side-length "solid" "white")]
                  [the-rocket .]
                  [the-velocity (/ side-length 100)])
                (lambda (frame)
                    (place-image
                        (rotate angle the-rocket)
                        (- 375 (* (cos (- 90 angle)) (* frame the-velocity)))  
                        (- 375 (* (sin (- 90 angle)) (* frame the-velocity)))  
                        the−background))))))

;; (rocket−movie angle) −> natural−number/c
;; angle : exact−integer?
(define rocket-movie
    (lambda (angle)
        (animate (make-takeoff angle))))

请原谅我的迂腐,但你真的,真的需要把你的“起飞”功能分解成更小的部分。特别是,如果您编写了一个接受角度和帧的“rocket-x”函数,您可以为它编写测试用例,并自己解决问题。如果您在执行此操作时遇到任何问题,请告诉我。

注意:和函数以弧度工作,而不是度。你的计算似乎假设了度数,这应该可以解释为什么你会看到奇怪的值


(另一方面,如果数字是以度为单位的,那么数字也会起作用。因此,请注意:数字根据上下文的不同可以表示不同的含义。)

我认为你是对的。我要试一试。如果我遇到任何问题,我会更新这个。谢谢