我正试着在球拍上做一个实时的时间图。我看过绘图和GUI库,似乎遗漏了一些东西。调用plot时,它会返回图像片段%或许多其他图片格式。但我似乎找不到任何方法来添加或删除图表中的点,而不再次调用plot。现在我想我可以使用像这样的方法
但是,我必须重新实现与snip%一起提供的所有操作机制。现在,我可能不得不这样做,但我想问的是,是否有任何现有的机制可以让您在创建绘图片段后操纵它的图形和数据,或者每次我想要更改它的外观时,我都必须手动重新绘制它?另外,有没有任何现有的工作,已经完成了在球拍的实时图表一般?
发布于 2016-07-06 11:41:06
在深入研究了球拍OOP和gui库之后,我最终发现(并理解了) plot/dc,文档声称它可以用于这样的应用程序:https://docs.racket-lang.org/plot/plotting.html?q=plot%2Fdc#%28def._%28%28lib._plot%2Fmain..rkt%29._plot%2Fdc%29%29
它在渲染时似乎比动画画布工作得更好,但除非有人有更好的想法,否则我仍然必须重新实现缩放和点击以及snip%s附带的所有东西。
#lang racket
(require racket/gui plot racket/draw)
(define num 0)
(define f (new frame% [label "Test graph"]
[width 200]
[height 200]))
(define c (new canvas% [parent f]))
(send f show #t)
(define (loop)
(set! num (add1 num))
(plot/dc (function sin (- pi) num)
(send c get-dc)
0 0
(- (send f get-width) 40) ;; figure out how to get the actual size of the text outside the graphs boarder?
(- (send f get-height) 40)
#:title "Graph"
#:x-label "num"
#:y-label "sin"
)
(sleep/yield .2)
(loop))
(loop)https://stackoverflow.com/questions/37559856
复制相似问题