####################################################################################################################################### # # # V I S U A L I S A T I O N D E S N O M B R E S P R E M I E R S J U M E A U X : # # # # # # Author of '$xiirv/.PRIM.H1.1.$U' : # # # # Jean-Francois Colonna (LACTAMME, 20150401105451). # # # ####################################################################################################################################### $Z setParam _____PDistance 2 $Z setParam _____PNiveauPN $GRIS_1 $Z setParam _____PNiveauNNP $GRIS_0 $Z setParam _____PNiveauNP $GRIS_8 $Z setParam _____PNiveauNPJ1 $GRIS_2 $Z # Definit le niveau du premier (le plus petit) d'un couple de nombres premiers. # $Z setParam _____PNiveauNPJ2 $GRIS_5 $Z # Definit le niveau du second (le plus grand) d'un couple de nombres premiers. # $Z setParam _____PNiveauS $GRIS_3 $Z set FaCtEuR=16 $Z # On notera qu'il est imperatif que '$FaCtEuR' soit un carre pair qui de plus divise # $Z # exactement 1024 (de 'Sdu') si l'on veut que la spirale soit bien "centree" en # $Z # traversant les carres... # $Z set XmAx=`calculINS (($Xmax-$Xmin)/$FaCtEuR)+$Xmin` $Z set YmAx=`calculINS (($Ymax-$Ymin)/$FaCtEuR)+$Ymin` $Z @ VaLiDeX = $dimX % $FaCtEuR $Z @ VaLiDeY = $dimY % $FaCtEuR $Z if (($VaLiDeX != 0) || ($VaLiDeY != 0)) then $Z EROR "Le facteur ($FaCtEuR) ne divise pas les dimension ($dimX et $dimY)." $Z else $Z endif $Z SformatI $Z XYmaxNe $XmAx $YmAx $Z $xrk/NPremiers.01$X \ $Z visualiser_nombres_premiers=VRAI \ $Z distance_nombres_premiers_jumeaux=$_____PDistance \ $Z niveau_premier_nombre=$_____PNiveauPN \ $Z niveau_nombres_non_premiers=$_____PNiveauNNP \ $Z niveau_nombres_premiers=$_____PNiveauNP \ $Z niveau_nombres_premiers_jumeaux_1=$_____PNiveauNPJ1 \ $Z niveau_nombres_premiers_jumeaux_2=$_____PNiveauNPJ2 \ $Z R=$xTV/PRIM.11 \ $Z $formatI $Z $xci/format.01$X \ $Z A=$xTV/PRIM.11 \ $Z $formatI \ $Z mode=0 \ $Z R=$xTV/PRIM.12 \ $Z $sformatIR $Z RformatI $Z set K_KX_KY=`calculI sqrt($FaCtEuR)` $Z # Pourquoi faut-il que (le 20150401155810) : # $Z # # $Z # 2 # $Z # FaCtEuR = K # $Z # # $Z # En fait tout vient evidemment des definitions de 'v $xiii/vecteurs$DEF' et de # $Z # 'v $xiii/vecteurs$FON'. De facon symbolique, on a par exemple : # $Z # # $Z # g2 = FgM2 = M2 = MOVE(___ZERO,PLUS__I,___ZERO) = MOVE(0,1,0) # $Z # # $Z # En notant {Cx,Cy,Cz} les coordonnees du curseur, ce qui precede equivaut a (en supposant # $Z # que la transformation geometrique est l'unite) : # $Z # # $Z # [1] Cx = Cx + DELTA_AXE(KX) = Cx + (K.KX.1) # $Z # # $Z # Ensuite, dans 'v $xci/spirale.21$K', apres un deplacement tel 'g2' il y a un 'FgXADDI()'. # $Z # Or : # $Z # # $Z # FgXADDI = XADDI # $Z # # $Z # soit : # $Z # # $Z # KX = KX + K # $Z # -- ------ # $Z # || || # $Z # || || # $Z # || ---------------------------------------------------- # $Z # || | # $Z # --------------------------------------- | # $Z # | | # $Z # ce qui va donc donner lors du deplacement suivant : | | # $Z # | | # $Z # ------------------- | # $Z # || | # $Z # || ---------------------- # $Z # || || # $Z # || || # $Z # -- ------ # $Z # [2] Cx = Cx + DELTA_AXE(KX) = Cx + (K.(KX + K).1) # $Z # = Cx + K.KX + K.K # $Z # --- # $Z # # $Z # La difference de deplacement entre [2] et [1] fait bien apparaitre K.K, soit le carre de K. # $Z set VaLiDe=`calculINS $K_KX_KY*$K_KX_KY` $Z if ($VaLiDe != $FaCtEuR) then $Z EROR "Le facteur ($FaCtEuR) n'est pas un carre parfait." $Z else $Z endif $Z set DiMXY=`$xcg/MAX2.01$X x=$dimX y=$dimY` $Z set XCeNtReB=`calculINS ((($Xmax-$Xmin)/2)+($FaCtEuR/2))+$Xmin` $Z set YCeNtReB=`calculINS ((($Ymax-$Ymin)/2)+($FaCtEuR/2))+$Ymin` $Z set LInCrEmEnT=(0 1) $Z $xci/neutre$X \ $Z A=$xTV/PRIM.12 \ $Z R=$_____ImageR \ $Z $formatI $Z set NoMbRe=`calculI (($DiMXY/$FaCtEuR)/2)+2` $Z foreach InCrEmEnTX ($LInCrEmEnT) $Z @ XCeNtRe = $XCeNtReB + $InCrEmEnTX $Z foreach InCrEmEnTY ($LInCrEmEnT) $Z @ YCeNtRe = $YCeNtReB + $InCrEmEnTY $Z $xci/spirale.21$X \ $Z A=$_____ImageR \ $Z X_centre=$XCeNtRe \ $Z Y_centre=$YCeNtRe \ $Z K=$K_KX_KY \ $Z KX=$K_KX_KY KY=$K_KX_KY \ $Z niveau_spirale=$_____PNiveauS \ $Z nombre_tours=$NoMbRe \ $Z R=$_____ImageR \ $Z $formatI $Z end $Z end