@@ -2702,6 +2702,7 @@ I$FORTRAN$ELEMENT[ (* -- FORTRAN CODE FOR ELEMENT *)
27022702 LOCAL ,
27032703 "\n " ,
27042704 StringTemplate [" DO I=1,NUMBER_OF_STEPS(`1`),1\n " ][INDEX ],
2705+ Part [LPROLOG , LCOUNT ],
27052706 " " ,
27062707 FACTOR ,
27072708 "\n " ,
@@ -2737,6 +2738,7 @@ I$FORTRAN$ELEMENT[ (* -- FORTRAN CODE FOR ELEMENT *)
27372738 " THIS=NEXT\n " ,
27382739 " END IF\n " ,
27392740 " END DO\n " ,
2741+ Part [LEPILOG , LCOUNT ],
27402742 " END DO\n "
27412743 ]
27422744 ]
@@ -4671,6 +4673,7 @@ I$TRACK[ (* -- TRACKING (INTERNAL & EXTERNAL APERTURE)
46714673ClearAll [I$LINE ] ;
46724674I$LINE ::usage = "
46734675I$LINE[LENGTH,RADIUS,DISTANCE] -- generate <LENGTH> (integer) lines with maximal radius <RADIUS> (real) with distance between points <DISTANCE> (real)
4676+ I$LINE[LENGTH,RX,RY,LIMIT] -- generate <LENGTH> (integer) lines with <LIMIT> (integer) points on each line and maximal horizontal radius <RX> (real) and verticle radius <RY> (real)
46744677" ;
46754678I$LINE [ (* -- INITIAL LINES GENERATION *)
46764679 LENGTH_ , (* -- NUMBER OF LINES (INTEGER) *)
@@ -4685,6 +4688,25 @@ I$LINE[ (* -- INITIAL LINES GENERATION *)
46854688 First [Transpose [SortBy [Transpose [List [POINT ,ANGLE ]],Last ]]]
46864689 ]
46874690] ;
4691+ I$LINE [ (* -- INITIAL LINES GENERATION *)
4692+ LENGTH_ , (* -- NUMBER OF LINES (INTEGER) *)
4693+ RX_ , (* -- H-RADIUS (REAL) *)
4694+ RY_ , (* -- V-RADIUS (REAL) *)
4695+ LIMIT_ (* -- DISTANCE BETWEEN POINTS ON A LINE (REAL) *)
4696+ ] := Block [
4697+ {CUT },
4698+ CUT [{X_ ,Y_ }] := Block [
4699+ {ANGLE , LIST , INDEX },
4700+ ANGLE = Subdivide [0 , Pi , LENGTH - 1 ] ;
4701+ LIST = ParametricPlot [{X * Cos [S ], Y * Sin [S ]}, {S , 0 , Pi }, Mesh -> {ANGLE }, MeshStyle -> Red , PlotStyle -> Black ] ;
4702+ LIST = Cases [LIST ,GraphicsComplex [DATA__ ] :> DATA , Infinity ] ;
4703+ INDEX = LIST [[- 1 , - 1 , 1 , - 1 , 1 ]] ;
4704+ LIST = LIST [[1 , INDEX ]] ;
4705+ LIST = Join [LIST , {{X , 0.0 }}] // Chop // N ;
4706+ Reverse [SortBy [LIST , First ]]
4707+ ] ;
4708+ Table [CUT [{RATIO * RX ,RATIO * RY }],{RATIO ,N [Subdivide [0 ,1 ,LIMIT - 1 ]]}] // Transpose
4709+ ] ;
46884710(* ################################################################################################################################################################ *)
46894711(* GENERATE FULL INITIAL CONDITION *)
46904712(* ################################################################################################################################################################ *)
0 commit comments