Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
VirtualKeyboardSample
/
SKILL
:
clean02.il
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; procedure(fonction_ordre() coord_concatener = '() path_ordre = '() cv = geGetEditCellView() win_id = getCurrentWindow() segments = geGetSelSet() for(i 0 length(segments)-1 points='() id = nth(i segments) points = id~>points nb_points = id~>nPoints for(j 0 nb_points-1-1 coord_concatener = append1(coord_concatener nth(j points)) ) ; dernier point du dernier segment if(i == length(segments)-1 then coord_concatener = append1(coord_concatener nth(nb_points-1 points)) ) ) coord_concatener = '() for(i 0 length(segments)-1 points='() id = nth(i segments) points = id~>points nb_points = id~>nPoints coord_concatener = append1(coord_concatener car(points)) coord_concatener= append1(coord_concatener cadr(points)) ) ;; rechercher x le plus petit et y le plus petit liste_x = '() liste_y = '() for(i 0 length(coord_concatener)-1 liste_x = append1(liste_x car(nth(i coord_concatener))) liste_y = append1(liste_y cadr(nth(i coord_concatener))) ) mini_x = minimum(liste_x) maxi_x = maximum(liste_x) mini_y = minimum(liste_y) maxi_y = maximum(liste_y) for(i 0 length(segments)-1 test = leIsPointInsideFig(nth(i segments) list(mini_x mini_y)) if(test == t then id_path_detecter = nth(i segments) path_ordre = append1(path_ordre id_path_detecter) ) ) tmp = '() tmp = remove(id_path_detecter segments) ;; replacer les points dans le sens de parcours points = id_path_detecter~>points n_pts = id_path_detecter~>nPoints test = equal(nth(0 points) list(mini_x mini_y) ) if(test == t then rien = 0 ) test = equal(nth(n_pts-1 points) list(mini_x mini_y) ) if(test == t then ;; faire un reverse de la liste des points reverse_pts = reverse(points) id_path_detecter~>points = reverse_pts ) for(i 0 length(tmp)-1 id_search = id_path_detecter bBox = id_search~>bBox figList = dbProduceOverlap(cv bBox) figList = remove(id_search figList) if(length(figList) == 1 then id_path_detecter = nth(0 figList) path_ordre = append1(path_ordre id_path_detecter) else un = nth(0 figList) res = setof( x path_ordre (x == un ) ) if(res == nil then id_path_detecter = nth(0 figList) path_ordre = append1(path_ordre id_path_detecter) ) deux = nth(1 figList) res = setof( x path_ordre (x == deux ) ) if(res == nil then id_path_detecter = nth(1 figList) path_ordre = append1(path_ordre id_path_detecter) ) ) ) liste_points = '() first = list(mini_x mini_y) liste_points = append1(liste_points first ) for(i 0 length(path_ordre)-1-1 id1 = nth(i path_ordre) p1 = car(id1~>points) p2 = cadr(id1~>points) xa = car(p1) ya = cadr(p1) xb = car(p2) yb = cadr(p2) id2 = nth(i+1 path_ordre) p1 = car(id2~>points) p2 = cadr(id2~>points) xc = car(p1) yc = cadr(p1) xd = car(p2) yd = cadr(p2) tampon = '() tampon = calculer_intersection_segment(xa ya xb yb xc yc xd yd) liste_points = append1(liste_points tampon) ) last_path = nth(0 reverse(path_ordre)) p1 = car(last_path~>points) p2 = cadr(last_path~>points) last_point = nth(0 reverse(liste_points)) test = equal(p1 last_point ) if(test == t then liste_points = append1(liste_points p2) ) test = equal(p2 last_point ) if(test == t then liste_points = append1(liste_points p1) ) printf("**** : %L \n" liste_points ) printf("**** : %L \n" path_ordre) )