Viewmat Spy shows the mouse position, and current RGB color with its components.
The snippet is run once anywhere any time to dynamically patch viewmat.
require 'viewmat'
jvm_g_mmove_jviewmat_=: 3 : 0
'X Y W H'=. 4{.0 ".sysdata
Y=. <:H-Y
p=. |.&.((3#256)&#:){.glqpixels X,Y,1 1
wd 'pn *',TITLE,' ',":X,Y,p,(3#256)#:p
)For example, from Plot:
steps=: {. + (1&{ - {.) * (i.@>: % ])@{:
gamma=: ! @ <:
real=: {. @ +.
x=. steps _3.5 4.5 60
y=. steps _1 1 60
z=. real gamma x j./ y
viewmat 'Gamma';~_3 >. 12 <. z
Contributed by OlegKobchenko
Thank you for the code, but with simple data I can see the mouse xy position isn't reported correctly -- move over the mouse pointer around the white box with the following example:
viewmat 1 (<4 4)} 10 10 $0
The xy position is vertically flipped. The flipping line(Y=. <:H-Y) should be ignored. The code should be:
jvm_g_mmove_jviewmat_=: 3 : 0
'X Y W H'=. 4{.0 ".sysdata
NB. Y=. <:H-Y
p=. |.&.((3#256)&#:){.glqpixels X,Y,1 1
wd 'pn *',TITLE,' ',":X,Y,p,(3#256)#:p
)--JuneKim
If you want to get the current location(row,col) and raw value on the data matrix:
require 'viewmat'
jvm_g_mmove_jviewmat_=: 3 : 0
'X Y W H'=. 4{.0 ".sysdata
uhw=.(H,W) % $MAT
croco=.<.(Y,X)%uhw
cval=.(<croco){tomatrix DAT
wd 'pn *',TITLE,' ',":croco,cval
) --JuneKim
