How do I update the colors too?

On 2 Sep 2014, at 9:09 am, Sheehan Olver <[email protected]> wrote:

> Thanks, much much faster!  To get it to work you have to do 
> 
>               Pkg.add(“ApproxFun”);Pkg.checkout(“ApproxFun”);
> 
> Below is the version that works for me.  Is there support for non-evenly 
> spaced grids?  I also want to do functions on a disk.  (And cylinders and 
> spheres…not sure how to plot those though.)
> 
> 
> 
> 
> 
> 
> using GLPlot, GLAbstraction, ModernGL, ApproxFun
> window = createdisplay(w=1000,h=1000,eyeposition=Vec3(1,1,1), lookat=Vec3(0))
>  
> function zcolor(i, j, t)
>     x = float32(i - 0.5)
>     z = float32(j - 0.5)
>     radius = sqrt((x * x) + (z * z))
>  
>     r = sin(10.0f0 * radius + t)
>     g = cos(10.0f0 * radius + t)
>     b = radius
>     return Vec4(r,g,b, 1)
> end
>  
> yy        = xx =-1.:.05:1.
> N         = length(xx)
> color     = [zcolor(i/N, j/N, 15) for i=1:N, j=1:N];
>  
>  
> h    = 0.01
> u0   = TensorFun((x,y)->exp(-10x.^2-20(y-.1).^2))
> d    = Interval()⊗Interval()
> L    = I-h^2*lap(d)
> B    = dirichlet(d)
> S    = schurfact([B,L],80)
>  
> u    = Array(TensorFun,10000)
> u[1] = u0
> u[2] = u0
> n    = 2
> 
> 
> m       = 500
> vals      = Float64[u[1][x,y] for x in xx,y in yy]
> texdata=map(Vec1,vals) 
> obj     = glplot(texdata, primitive=SURFACE(), color=color)
> # this is probably a little opaque, but texdata ends up in :z, as :z is the 
> default attribute for the data you upload
> zvalues = obj.uniforms[:z] 
> # Like this you get a reference to the gpu memory object (a texture in this 
> case)
>  
> glClearColor(1,1,1,0)
> for k=n+1:n+m
>     u[k]      = (S\[zeros(4),2u[k-1]-u[k-2]])
>     vals      = Float64[u[k][x,y] for x in xx,y in yy]
>     update!(zvalues, map(Vec1,vals)) # now you can simply update the gpu 
> object, which should be very efficient
>     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
>     render(obj)
>     yield()
>     GLFW.SwapBuffers(window.glfwWindow)
> end
> n+=m 
> 
> 
> 
> 
> 
> On 2 Sep 2014, at 6:48 am, Simon Danisch <[email protected]> wrote:
> 
>> Hi, 
>> glad to hear that you like my package!
>> I'm surprised that your code works without being very slow, as you use my (a 
>> little confusing) API wrong ;)
>> Here is a better version:
>> https://gist.github.com/SimonDanisch/794c274fbf3090f00359
>> I couldn't test the code, as some functions where missing!
>> 
>> Best,
>> Simon
>> 
>> 
>> Am Dienstag, 19. August 2014 07:46:22 UTC+2 schrieb Sheehan Olver:
>> Hi,
>> 
>> Is there a way to force plotting in PyPlot.jl, to simulate animation?  Right 
>> now if I do a for loop over a sequence of plots, it only outputs the last 
>> plot.
>> 
>> This is in IJulia running on OS X with matplotlib version 1.3.1 installed, 
>> and pygui(true)
>> 
>> Sheehan
> 

Reply via email to