rendered paste bodyalias fig.win {
if ($1- == redraw) {
set %fig.win.rgb 16777215
goto redraw
}
if ($1- == start) {
.disable #figwinmouse
.unset -s %fig.win*
set %fig.win.rgb 16777215
window -pdk0 +t @fig.win -1 -1 810 630
drawrect -r @fig.win 6431615 1 20 20 761 561 1
set %fig.win.waitalllocs 1
return
}
if ($1- == end) {
:redraw
if (!$window(@fig.win)) {
window -pdk0 +t @fig.win -1 -1 810 630
drawrect -r @fig.win 6431615 1 20 20 761 561 1
}
if ($active !== @fig.win) { window -a @fig.win }
var %x_min %fig.win.x_min
var %x_max %fig.win.x_max
var %y_min %fig.win.y_min
var %y_max %fig.win.y_max
var %x_diff = %x_max - %x_min
var %y_diff = %y_max - %y_min
var %k = %x_diff / 760
set %fig.win.koeficient $calc(%x_diff / 760)
if ($calc(%y_diff / %k) > 560) {
var %k = %y_diff / 560
set %fig.win.koeficient $calc(%y_diff / 560)
}
var %x_dec = $calc($calc(%x_min / %k) - 20)
var %y_dec = $calc($calc(%y_min / %k) - 20)
drawtext -rnb @fig.win $rgb(255,255,255) $rgb(0,0,0) verdena 10 1 1 Min X: %x_min Max X: %x_max X Diff: %x_diff </> Min Y: %y_min Max Y: %y_max Y Diff: %y_diff </> K: 1: $+ %k </> Loc Count: $calc(%fig.win.waitalllocs - 1)
;echo -a $calc(%x_min / %k) $calc($calc(%x_max / %k) - $calc(%x_min / %k)) $calc(%y_min / %k) $calc($calc(%y_max / %k) - $calc(%y_min / %k))
;tasko piesimas butu taip:
; %x_dot / %k + 20 - %x_dec
; %y_dot / %l + 20 - %y_dec
var %curr.persing.loc = 1
var %total.locs = $calc(%fig.win.waitalllocs - 1)
while (%curr.persing.loc <= %total.locs) {
var %locs = %fig.win.loc. [ $+ [ %curr.persing.loc ] ]
var %tot = $numtok(%locs,32)
var %drawdots = $round($calc($gettok($gettok(%locs,1,32),1,120) / %k - %x_dec),0) $round($calc($gettok($gettok(%locs,1,32),2,120) / %k - %y_dec),0) $round($calc($gettok($gettok(%locs,%tot,32),1,120) / %k - %x_dec),0) $round($calc($gettok($gettok(%locs,%tot,32),2,120) / %k - %y_dec),0)
;drawline -r @fig.win $rgb(255,255,255) 2 ->10 10 10 20 20 50
var %y = 1
var %rgb = $rgb($rand(0,255),$rand(0,255),$rand(0,255))
while (%tot > %y) {
var %v1 = $round($calc($gettok($gettok(%locs,%y,32),1,120) / %k - %x_dec),0)
var %v2 = $round($calc($gettok($gettok(%locs,%y,32),2,120) / %k - %y_dec),0)
var %drawdots = %drawdots %v1 %v2
var %v1 = $round($calc($gettok($gettok(%locs,$calc(%y + 1),32),1,120) / %k - %x_dec),0)
var %v2 = $round($calc($gettok($gettok(%locs,$calc(%y + 1),32),2,120) / %k - %y_dec),0)
var %drawdots = %drawdots %v1 %v2
drawline -nr @fig.win %rgb 1 %drawdots
unset %drawdots
inc %y
}
;echo -a %drawdots
.unset %drawdots
.inc %curr.persing.loc
}
drawline @fig.win
.enable #figwinmouse
return
}
if (%fig.win.waitalllocs) {
var %tot = $calc($numtok($1,59) / 4)
if ($numtok(%tot,46) > 1) {
echo -a Error: Wrong loc
return
}
if (!$window(@fig.win)) {
window -pdk0 +t @fig.win -1 -1 810 630
drawrect -r @fig.win 6431615 1 20 20 761 561 1
}
;pasidarom biski kitoki formata
var %tmp = $1
var %x = 1
var %y = 1
while (%tot >= %x) {
var %locs = %locs $remove($gettok(%tmp,%y,59),$chr(123),$chr(125)) $+ x $+ $remove($gettok(%tmp,$calc(%y + 1),59),$chr(123),$chr(125))
var %y = %y + 4
inc %x
}
;persinam x_min x_max ir t.t.
var %parsenr = 2
var %tot = $numtok(%locs,32)
;jeigu cia pirma koordinate, tai priskiriam is jos pradinius x_min max ir pan.
if (%fig.win.waitalllocs == 1) {
set %x_min $gettok($gettok(%locs,1,32),1,120)
var %x_max = %x_min
set %y_min $gettok($gettok(%locs,1,32),2,120)
var %y_max = %y_min
}
else {
var %x_min %fig.win.x_min
var %x_max %fig.win.x_max
var %y_min %fig.win.y_min
var %y_max %fig.win.y_max
}
while (%tot >= %parsenr) {
var %curr.x = $gettok($gettok(%locs,%parsenr,32),1,120)
var %curr.y = $gettok($gettok(%locs,%parsenr,32),2,120)
if (%curr.x > %x_max) { var %x_max = %curr.x }
elseif (%curr.x < %x_min) { set %x_min %curr.x }
if (%curr.y > %y_max) { var %y_max = %curr.y }
elseif (%curr.y < %y_min) { set %y_min %curr.y }
inc %parsenr
}
set %fig.win.x_min %x_min
set %fig.win.x_max %x_max
set %fig.win.y_min %y_min
set %fig.win.y_max %y_max
;uzetinam ir padidinam index file
set %fig.win.loc. [ $+ [ %fig.win.waitalllocs ] ] %locs
drawtext -rb @fig.win $rgb(255,255,255) $rgb(0,0,0) verdena 10 1 1 Min X: %x_min Max X: %x_max X Diff: N/A </> Min Y: %y_min Max Y: %y_max Y Diff: N/A </> K: N/A </> Loc Count: %fig.win.waitalllocs
inc %fig.win.waitalllocs
return
}
/*
;nx mum tas javinis, ten ir taip aisq :D
if ($chr(123) isin $1) {
*/
.unset -s %fig.win*
set %fig.win.rgb 16777215
;kiekviena koordinate is uEngine sudaro keturis skaicius, X Y zMin zMax
var %tot = $calc($numtok($1,59) / 4)
if ($numtok(%tot,46) > 1) {
echo -a Error: Wrong loc
return
}
var %tmp = $1
var %x = 1
var %y = 1
while (%tot >= %x) {
var %locs = %locs $remove($gettok(%tmp,%y,59),$chr(123),$chr(125)) $+ x $+ $remove($gettok(%tmp,$calc(%y + 1),59),$chr(123),$chr(125))
var %y = %y + 4
inc %x
}
set %fig.win.loc.1 %locs
set %fig.win.waitalllocs 1
/*
;nx mum tas javinis, ten ir taip aisq :D
}
else {
var %locs = $+($1,x,$3) $+($2,x,$3) $+($2,x,$4) $+($1,x,$4)
}
*/
;echo -a %locs
window -pdk0 +t @fig.win -1 -1 810 630
drawrect -rn @fig.win 6431615 1 20 20 761 561 1
; x1 y1 x2 y1 x2 y2 x1 y2
;var %locs = -87312x240096 -81129x240096 -81129x246345 -87312x246345
;turim sutilpt i 760x560
; surandam didziausius ir maziausius x y bei diff tarp ju
var %parsenr = 2
var %tot = $numtok(%locs,32)
set %x_min $gettok($gettok(%locs,1,32),1,120)
var %x_max = %x_min
set %y_min $gettok($gettok(%locs,1,32),2,120)
var %y_max = %y_min
while (%tot >= %parsenr) {
var %curr.x = $gettok($gettok(%locs,%parsenr,32),1,120)
var %curr.y = $gettok($gettok(%locs,%parsenr,32),2,120)
if (%curr.x > %x_max) { var %x_max = %curr.x }
elseif (%curr.x < %x_min) { set %x_min %curr.x }
if (%curr.y > %y_max) { var %y_max = %curr.y }
elseif (%curr.y < %y_min) { set %y_min %curr.y }
set %fig.win.x_min %x_min
set %fig.win.x_max %x_max
set %fig.win.y_min %y_min
set %fig.win.y_max %y_max
inc %parsenr
}
var %x_diff = %x_max - %x_min
var %y_diff = %y_max - %y_min
var %k = %x_diff / 760
set %fig.win.koeficient $calc(%x_diff / 760)
if ($calc(%y_diff / %k) > 560) {
var %k = %y_diff / 560
set %fig.win.koeficient $calc(%y_diff / 560)
}
var %x_dec = $calc($calc(%x_min / %k) - 20)
var %y_dec = $calc($calc(%y_min / %k) - 20)
drawtext -rnb @fig.win $rgb(255,255,255) $rgb(0,0,0) verdena 10 1 1 Min X: %x_min Max X: %x_max X Diff: %x_diff </> Min Y: %y_min Max Y: %y_max Y Diff: %y_diff </> K: 1: $+ %k
;echo -a $calc(%x_min / %k) $calc($calc(%x_max / %k) - $calc(%x_min / %k)) $calc(%y_min / %k) $calc($calc(%y_max / %k) - $calc(%y_min / %k))
;tasko piesimas butu taip:
; %x_dot / %k + 20 - %x_dec
; %y_dot / %l + 20 - %y_dec
var %drawdots = $round($calc($gettok($gettok(%locs,1,32),1,120) / %k - %x_dec),0) $round($calc($gettok($gettok(%locs,1,32),2,120) / %k - %y_dec),0) $round($calc($gettok($gettok(%locs,%tot,32),1,120) / %k - %x_dec),0) $round($calc($gettok($gettok(%locs,%tot,32),2,120) / %k - %y_dec),0)
;drawline -r @fig.win $rgb(255,255,255) 2 ->10 10 10 20 20 50
var %y = 1
while (%tot > %y) {
var %drawdots = %drawdots $round($calc($gettok($gettok(%locs,%y,32),1,120) / %k - %x_dec),0) $round($calc($gettok($gettok(%locs,%y,32),2,120) / %k - %y_dec),0)
var %drawdots = %drawdots $round($calc($gettok($gettok(%locs,$calc(%y + 1),32),1,120) / %k - %x_dec),0) $round($calc($gettok($gettok(%locs,$calc(%y + 1),32),2,120) / %k - %y_dec),0)
inc %y
}
;echo -a %drawdots
drawline -nr @fig.win $rgb(255,255,255) 1 %drawdots
drawline @fig.win
.enable #figwinmouse
}
on *:close:@fig.win: {
.disable figwinmouse
}
#figwinmouse on
menu @fig.win {
mouse: {
if ($mouse.x isnum 20-780) && ($mouse.y isnum 20-581) {
drawtext -rb @fig.win 16777215 0 verdena 10 720 1 $round($calc($calc($mouse.x - 20) * %fig.win.koeficient + %fig.win.x_min),0) $+ x $+ $round($calc($calc($mouse.y - 21) * %fig.win.koeficient + 20 + %fig.win.y_min),0) $+ ----
}
}
sclick: {
if ($mouse.x isnum 20-780) && ($mouse.y isnum 20-581) {
drawdot -r @fig.win %fig.win.rgb 1 $mouse.x $mouse.y
drawtext -r @fig.win %fig.win.rgb verdena 10 $calc($mouse.x - 40) $calc($mouse.y + 2) $round($calc($calc($mouse.x - 20) * %fig.win.koeficient + %fig.win.x_min),0) $+ x $+ $round($calc($calc($mouse.y - 21) * %fig.win.koeficient + 20 + %fig.win.y_min),0)
}
}
rclick: {
set %fig.win.rgb $rgb($rand(0,255),$rand(0,255),$rand(0,255))
}
}
#figwinmouse end