-rw-r--r-- | agg-plot/plot-window.cpp | 6 | ||||
-rw-r--r-- | examples/anim.lua | 27 |
diff --git a/agg-plot/plot-window.cpp b/agg-plot/plot-window.cpp index 8f55fbd2..fc6907b9 100644 --- a/agg-plot/plot-window.cpp +++ b/agg-plot/plot-window.cpp @@ -99,9 +99,11 @@ public: void plot_update() { this->lock(); - this->on_draw_unprotected(); if (this->status == plot_window::running) - this->update_window(); + { + this->on_draw_unprotected(); + this->update_window(); + } this->unlock(); }; diff --git a/examples/anim.lua b/examples/anim.lua index 4dddacc5..ff27e7db 100644 --- a/examples/anim.lua +++ b/examples/anim.lua @@ -33,3 +33,30 @@ function demo2() p:refresh() end end + +function demo3() + local x1 = 25 + local p = plot('rotating sine') + + local box = path(-2*pi, -2*pi) + box:line_to(2*pi, -2*pi) + box:line_to(2*pi, 2*pi) + box:line_to(-2*pi, 2*pi) + box:close() + + p:addline(box, 'black') + p.units = false + p:show() + + local N = 512 + for j=0, N do + local angle = j*2*pi/N + p:clear() + local ln = fxline(sin, 0, 2*pi) + p:stroke(ln, 'red', {}, {{'rotate', angle= angle}}) + p:stroke(ln, 'blue', {}, {{'rotate', angle= angle + pi/2}}) + p:stroke(ln, 'green', {}, {{'rotate', angle= angle + pi}}) + p:stroke(ln, 'yellow', {}, {{'rotate', angle= angle + 3*pi/2}}) + p:refresh() + end +end |