[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:002373] Re: VArray



堀之内です。

> たぶん以下がやりたいことを実現するもっとも短い方法でしょう.
> (だって中身は1行)
> 
> require "numru/gphys"
> module NumRu
>   class GPhys
>     def bar(dim)
>       self[ *( [true]*dim+[1..-1,false] ) ] +
>       self[ *( [true]*dim+[0..-2,false] ) ] / 2.0
>     end
>   end
> end

しまった.これだと軸の位置が中間にきませんね.以下でどうでしょう 

    def bar(dim)
      newgp = self[ *( [true]*dim+[1..-1,false] ) ] +
              self[ *( [true]*dim+[0..-2,false] ) ] / 2.0
      vax = self.axis(dim).pos
      newgp.axis(dim).set_pos( vax[1..-1]+vax[0..-2] / 2.0 )
      newgp
    end

4行になってしまいました.

# VArray でなく Axis クラスに4則演算が欲しくなってきた...