#######################################################################################################################################
# #
# 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