([v77], [v78]) FR ?angles file? FR ?list of particles per projection? FR ?output file? ;; if [v77] > 0, numbered labels are added ;; They're drawn w/ lower left corner at (x,y), so they need to be shifted. ;; Digits from the LA command are approx 13 pixels high, ;; 10 pix wide (single digit),23 p wide (2 digits) [v44] = INT(13/2) [v45] = INT(10/2) [v46] = INT(23/2) BL ; Create a blank image _1 (607,607) N (0.0) PT ; Draw lines _1 L (1,303) (605,303) Y L (303,1) (303,605) N PT ; Draw the large circles _1 CL (303,303) (302) N ; ''''''''''''''''''''''''''''''''''''''''''''''''''''' ; If they want labels, do them 1st ; ''''''''''''''''''''''''''''''''''''''''''''''''''''' IF ([v77].EQ.0) GOTO LB8 DO [v91]=1,83 UD IC,[v91],[v51],[v52],[v53] ; doc file with reference angles IF([v52].le.90.0) GOTO LB12 [v52]=180.0-[v52] [v53]=[v53]+180.0 IF([v53].lt.360.0) GOTO LB12 [v53]=[v53]-360.0 LB12 [v61]=[v52]/90 [v61]=[v61]*300 [v81]=cos([v53]) [v82]=sin([v53]) [v81]=[v81]*[v61] [v82]=[v82]*[v61] [v81]=[v81]+303 [v82]=[v82]+303 ; add a label----------------- [v48] = [v82]+[v44] ; y coord IF ([v91].LT.10) THEN ; single digit [v49] = [v81]-[v45] LA L _1 _2 {*[v91]} [v49],[v48] ; coord ELSE [v49] = [v81]-[v46] LA L _1 _2 {**[v91]} [v49],[v48] ; coord ENDIF CP _2 _1 ENDDO IF ([v77].LT.0) CYCLE ; Skip the circles LB8 AR _1 _2 p1/2 RP ; This little hack keeps the max=1 for subsequent graphix _2 (1,1) (1) CP _2 _1 ; ''''''''''''''''''''''''''''''''''''''''''''''''''''' ; The main loop that draws the circles DO [v91]=1,83 UD IC,[v91],[v51],[v52],[v53] ; doc file with reference angles IF([v52].le.90.0) GOTO LB2 [v52]=180.0-[v52] [v53]=[v53]+180.0 IF([v53].lt.360.0) GOTO LB2 [v53]=[v53]-360.0 LB2 [v61]=[v52]/90 [v61]=[v61]*300 [v81]=cos([v53]) [v82]=sin([v53]) [v81]=[v81]*[v61] [v82]=[v82]*[v61] [v81]=[v81]+303 [v82]=[v82]+303 UD IC,[v91],[v71] ; Doc file: how many particles in each view IF([v71].eq.0) CYCLE [v72]=[v71]*9 [v72]=sqr([v72]) PT ; Draw a circle _1 CL [v81],[v82] ; Center coords [v72] ; Radius N ; ENDDO RP ; Undo the little hack _1 (1,1) (0) IF ([v78].GT.0) THEN NEG _1 ELSE CP _1 ; Output file ENDIF UD ICE UD ICE RE