The lines do not wrap on my Galaxy if I turn it sideways. Not bad the otherway round either. On Dec 15, 2013 5:43 AM, "Raul Miller" <rauldmil...@gmail.com> wrote:
> Here's another draft. I do not know if anyone else has been able to > run this code (needs j602 and opengl), or cares to, but this is as > much an attempt on my part to resolve emailing issues as it is to > explain or propagate the code. > > Steps I have taken here include making sure no lines are longer than > 72 characters and making sure that @ is never followed by a letter (I > use @: instead). > > Anyways, here's a draft. I think it looks ok with send/undo so lets > see how the mailing list and archival system treats it: > > coclass 'colourchoice' > require 'jzopengl' > coinsert 'jzopengl' > > Note 'wd' > p - parent window > s - scrollbar -- S will be numeric value 0..255 > repesents distance along white/black diagonal > c - color display > ) > > NB. object constructor > create=:3 :0 > ogl=: ''conew'jzopengl' > wd 'pc p;' > wd 'xywh 0 0 10 256; cc s scrollbarv bottommove;' > S=: 127 > wd 'set s 0 ',(":S),' 255 39;' > wd 'xywh 10 0 256 256; cc c isigraph opengl rightmove bottommove;' > wd 'pas 0 0; pshow;' > ) > > NB. event handlers > p_close=: destroy > > p_c_paint=: 3 :0 > rc__ogl'' > glClear GL_COLOR_BUFFER_BIT > draw L:0 S {:: IMAGES > show__ogl'' > ) > > p_s_button=: 3 :0 > S=: 0 ". s > wd 'setinvalid c' > ) > > p_c_mbldown=: 3 :0 > trac 1 > ) > > p_c_mmove=: 3 :0 > trac TRACK > ) > > p_c_mblup=: 3 :0 > trac 0 > ) > > NB. implementation > > destroy=: 3 :0 > destroy__ogl'' > wd'pclose' > codestroy'' > ) > > NB. projection onto plane tangent to white/black axis of colour cube > X0=: 1 _1 1 * %: 1 5 1%6 > Y0=: _1 0 1 * %: %2 > coords=: +/ .*"1&(X0,:Y0)"1 > > rms=: +/ &.: *:"1 NB. "root mean square" > > NB. use gift wrapping algorithm to find drawable order > NB. http://en.wikipedia.org/wiki/Gift_wrapping_algorithm > split1=: ,:@{. ; }. > car=: 0 {:: [ NB. ordered on convex hull > cdr=: 1 {:: [ NB. not ordered yet > NB. pick next corner based on angle: > choose=: cdr #~ [: (= >./) -@^.@:rms@(cdr -"1 {:@:car) > giftwrap=: i. 0 {:: (((car,]) ; cdr-.]) choose)^:(#@:cdr)@:split1 > > CORNERPAIRS=: (#:i.8) {~ ~./:"1~8 8#:I.,1=rms-"1/~#:i.8 > CORNERVERTS=: (([ +"1 (85%~i.86) */ -~)/)"2 CORNERPAIRS > NB. 256 = 86+85+85 > COLOURSLICE=: (rms <@((giftwrap@:coords{])^:(2<#))@~./. ]),/CORNERVERTS > PALETTES=: (,. coords)&.> COLOURSLICE > NB. make white and black slices be non-empty to avoid errors: > PALETTES=: (<1 1 1 __ __ >."1 >254{PALETTES) 255} PALETTES > PALETTES=: (<0 0 0 _ _ <."1 >1{PALETTES) 0} PALETTES > > decorate=:3 :0 > NB. add small rectangles of solid color on edges of color slices > cy=.3{."1 y > ey=.3 4{"1 y > vy=. ey-"1(+/%#)ey > vec=. -(*-/ .* vy)*0,.0,.0,.0.01*(%rms)(vy-1|.vy)+/ .*0 _1,:1 0 > y;(y,"1 2 (vec+y),:"1 (1|.y));(vec+y),"1 2 (vec+1|.y),:"1 (1|.y) > ) > > NB. also: put white first ("on top") > IMAGES=: decorate&.> |.PALETTES > > corner=: 3 :0 > glColor3d 3{.y > glVertex2d 3 4{y > ) > > draw=: 3 :0"2 > glBegin GL_POLYGON > corner"1 y > glEnd'' > ) > > TRACK=: 0 > trac=: 3 :0 > if. y+.TRACK do. > smoutput y,TRACK,2 {. 0".sysdata > end. > TRACK=: y > ) > > smoutput ''conew'colourchoice' > > Thanks, > > -- > Raul > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm