+void genPaths(unsigned int *h_paths, int *p_i, int *p_j, unsigned int r ){
+ unsigned int idpath = 0 ;
+ int ic, jc ;
+ float offset = 0.5 ;
+
+ // Q1 inf
+ for (int a=0 ; a< 4 ; a++){ // les 4 angles 0,15,30 et 45
+ for (int p=0 ; p< r ; p++){ // les r points
+ jc = p ;
+ ic = r-1 - floor(tang[a]*p + offset) ;
+ h_paths[ idpath*r*r + ic*r + jc ] = 255 ;
+ if ( p > 0 ){
+ p_i[idpath*(r-1)+p-1] = ic ;
+ p_j[idpath*(r-1)+p-1] = jc ;
+ }
+ }
+ idpath++ ;
+ }
+ // Q1 sup
+ for (int a=2 ; a>0 ; a--){ // les 2 angles 60 et 75
+ for (int p=0 ; p< r ; p++){ // les r points
+ ic = r-1 - p ;
+ jc = floor(tang[a]*p + offset) ;
+ h_paths[ idpath*r*r + ic*r + jc ] = 255 ;
+ if ( p > 0 ){
+ p_i[idpath*(r-1)+p-1] = ic ;
+ p_j[idpath*(r-1)+p-1] = jc ;
+ }
+ }
+ idpath++ ;
+ }
+
+ // Q2 inf
+ for (int a=0 ; a< 4 ; a++){ // les 4 angles 90,105,130 et 145
+ for (int p=0 ; p< r ; p++){ // les r points
+ ic = r-1 - p ;
+ jc = r-1 - floor(tang[a]*p + offset) ;
+ h_paths[ idpath*r*r + ic*r + jc ] = 255 ;
+ if ( p > 0 ){
+ p_i[idpath*(r-1)+p-1] = ic ;
+ p_j[idpath*(r-1)+p-1] = jc ;
+ }
+ }
+ idpath++ ;
+ }
+ // Q2 sup
+ for (int a=2 ; a>0 ; a--){ // les 2 angles 60 et 75
+ for (int p=0 ; p< r ; p++){ // les r points
+ jc = r-1 - p ;
+ ic = r-1 - floor(tang[a]*p + offset) ;
+ h_paths[ idpath*r*r + ic*r + jc ] = 255 ;
+ if ( p > 0 ){
+ p_i[idpath*(r-1)+p-1] = ic ;
+ p_j[idpath*(r-1)+p-1] = jc ;
+ }
+ }
+ idpath++ ;
+ }
+
+
+ // Q3 inf
+ for (int a=0 ; a< 4 ; a++){ // les 4 angles 90,105,130 et 145
+ for (int p=0 ; p< r ; p++){ // les r points
+ jc = r-1 - p ;
+ ic = floor(tang[a]*p + offset) ;
+ h_paths[ idpath*r*r + ic*r + jc ] = 255 ;
+ if ( p > 0 ){
+ p_i[idpath*(r-1)+p-1] = ic ;
+ p_j[idpath*(r-1)+p-1] = jc ;
+ }
+ }
+ idpath++ ;
+ }
+ // Q3 sup
+ for (int a=2 ; a>0 ; a--){ // les 2 angles 60 et 75
+ for (int p=0 ; p< r ; p++){ // les r points
+ ic = p ;
+ jc = r-1 - floor(tang[a]*p + offset) ;
+ h_paths[ idpath*r*r + ic*r + jc ] = 255 ;
+ if ( p > 0 ){
+ p_i[idpath*(r-1)+p-1] = ic ;
+ p_j[idpath*(r-1)+p-1] = jc ;
+ }
+ }
+ idpath++ ;
+ }
+
+
+ // Q4 inf
+ for (int a=0 ; a< 4 ; a++){ // les 4 angles 90,105,130 et 145
+ for (int p=0 ; p< r ; p++){ // les r points
+ ic = p ;
+ jc = floor(tang[a]*p + offset) ;
+ h_paths[ idpath*r*r + ic*r + jc ] = 255 ;
+ if ( p > 0 ){
+ p_i[idpath*(r-1)+p-1] = ic ;
+ p_j[idpath*(r-1)+p-1] = jc ;
+ }
+ }
+ idpath++ ;
+ }
+ // Q4 sup
+ for (int a=2 ; a>0 ; a--){ // les 2 angles 60 et 75
+ for (int p=0 ; p< r ; p++){ // les r points
+ jc = p ;
+ ic = floor(tang[a]*p + offset) ;
+ h_paths[ idpath*r*r + ic*r + jc ] = 255 ;
+ if ( p > 0 ){
+ p_i[idpath*(r-1)+p-1] = ic ;
+ p_j[idpath*(r-1)+p-1] = jc ;
+ }
+ }
+ idpath++ ;
+ }