#!/bin/csh
#######################################################################################################################################
# #
# G E N E R A T I O N D ' U N E P A L E T T E A L E A T O I R E A L U M I N A N C E C R O I S S A N T E : #
# #
# #
# Utilisation : #
# #
# $xciP/aleatoire.01$vv$Z <paletteR> [<graineR> [<graineV> [<graineB>]]] #
# #
# #
# Author of '$xciP/aleatoire.01$vv$Z' : #
# #
# Jean-Francois Colonna (LACTAMME, 20210514113926). #
# #
#######################################################################################################################################
set paletteR=$1
set graineR=$2
set graineV=$3
set graineB=$4
setArgum graineR 1789
setArgum graineV 1947
setArgum graineB 2001
FilSTmpB FPaLeTtE
#20210515095845____:set exec_aR="graine=$graineR" #
#20210515095845____:set exec_aV="graine=$graineV" #
#20210515095845____:set exec_aB="graine=$graineB" #
#202105:execRVB $xci/valeurs_alea$X premiere=$NOIR derniere=$BLANC inferieur=$NOIR superieur=$BLANC Alleger=VRAI > $FPaLeTtE.1%s #
#20210515095845____:FilSTmpB FLuminance #
#20210515095845____:$xrv/LIN3.11$X ne=$COULEURS \ #
#20210515095845____: luminance=VRAI \ #
#20210515095845____: fichier1=$FPaLeTtE.1$ROUGE \ #
#20210515095845____: fichier2=$FPaLeTtE.1$VERTE \ #
#20210515095845____: fichier3=$FPaLeTtE.1$BLEUE \ #
#20210515095845____: >> $FLuminance #
#20210515095845____:FilSTmpB FDegrade #
#20210515095845____:$xci/valeurs_inte$X premiere=$NOIR derniere=$BLANC \ #
#20210515095845____: vD=$NOIR vA=$BLANC \ #
#20210515095845____: lineaire=VRAI \ #
#20210515095845____: >> $FDegrade #
#20210515095845____:set PaR_1="fichierA=$FLuminance fichierN=$FDegrade" #
#20210515095845____:set PaR_2="formater=VRAI entiers=VRAI Alleger=VRAI" #
#20210515095845____:execRVB "$xrv/SCAL.11$X ne=$COULEURS fichierX=$FPaLeTtE.1%s $PaR_1 $PaR_2 > $FPaLeTtE.2%s" #
# Cette methode presente l'inconvenient de generer des {R,V,B} hors de [NOIR,BLANC]... #
#20210520120628____:set Coefficient_R=`$xcg/luminance.01$X R=1 V=0 B=0` #
#20210520120628____:set Coefficient_V=`$xcg/luminance.01$X R=0 V=1 B=0` #
#20210520120628____:set Coefficient_B=`$xcg/luminance.01$X R=0 V=0 B=1` #
set Coefficient_R=`$xcg/luminance.01$X ROUGE=1 VERTE=0 BLEUE=0`
set Coefficient_V=`$xcg/luminance.01$X ROUGE=0 VERTE=1 BLEUE=0`
set Coefficient_B=`$xcg/luminance.01$X ROUGE=0 VERTE=0 BLEUE=1`
# Coefficients de calcul d'une luminance a partir des composantes {R,V,B}... #
#20210517122452:set Luminances=`$xci/valeurs_inte$X D=$NOIR A=$BLANC vD=$NOIR vA=$BLANC lineaire=VRAI entiers=VRAI signe="$K_VIDE"` #
# Definition d'une echelle de luminance croissante dans [$NOIR,$BLANC]... #
#20210517122452____:foreach Luminance ($Luminances) #
#20210517122452____: set Comp_R=`calculINS $Luminance/(3*$Coefficient_R)` #
#20210517122452____: set Comp_V=`calculINS $Luminance/(3*$Coefficient_V)` #
#20210517122452____: set Comp_B=`calculINS $Luminance/(3*$Coefficient_B)` #
# Cette methode presente aussi l'inconvenient de generer des {R,V,B} hors de [NOIR,BLANC]... #
#20210517122452____: set ItErEr=$EXIST #
#20210517122452____: while ($ItErEr == $EXIST) #
#20210517122452____: if ($Comp_B > $BLANC) then #
#20210517122452____: @ Comp_B = $BLANC #
#20210517122452____: set NewLuminance=`$xcg/luminance.01$X R=$Comp_R V=$Comp_V B=$Comp_B entiers=VRAI signe="$K_VIDE"` #
#20210517122452____: @ DeltaLuminance = $Luminance - $NewLuminance #
#20210517122452____: @ DeltaLuminance = $DeltaLuminance / 2 #
#20210517122452____: @ Comp_R = $Comp_R + $DeltaLuminance #
#20210517122452____: @ Comp_V = $Comp_V + $DeltaLuminance #
#20210517122452____: else #
#20210517122452____: endif #
#20210517122452____: if ($Comp_R > $BLANC) then #
#20210517122452____: @ Comp_R = $BLANC #
#20210517122452____: set NewLuminance=`$xcg/luminance.01$X R=$Comp_R V=$Comp_V B=$Comp_B entiers=VRAI signe="$K_VIDE"` #
#20210517122452____: @ DeltaLuminance = $Luminance - $NewLuminance #
#20210517122452____: @ DeltaLuminance = $DeltaLuminance #
#20210517122452____: @ Comp_V = $Comp_V + $DeltaLuminance #
#20210517122452____: else #
#20210517122452____: endif #
#20210517122452____: if ($Comp_V > $BLANC) then #
#20210517122452____: @ Comp_V = $BLANC #
#20210517122452____: else #
#20210517122452____: endif #
#20210517122452____: set ItErEr=$NEXIST #
#20210517122452____: end #
#20210517122452____: echo $Comp_R \ #
#20210517122452____: >>! $FPaLeTtE$ROUGE #
#20210517122452____: echo $Comp_V \ #
#20210517122452____: >>! $FPaLeTtE$VERTE #
#20210517122452____: echo $Comp_B \ #
#20210517122452____: >>! $FPaLeTtE$BLEUE #
#20210517122452____:end #
FilSTmpB FLuMiNaNcE
$xci/valeurs_inte$X D=$NOIR A=$BLANC \
vD=$NOIR vA=$BLANC \
lineaire=VRAI \
entiers=VRAI signe="$K_VIDE" \
>> $FLuMiNaNcE
set exec_aR="pX=1 pY=0 pZ=0"
set exec_aV="pX=0 pY=1 pZ=0"
set exec_aB="pX=0 pY=0 pZ=1"
set PaRaM="$K_VIDE"
set PaRaM="$PaRaM"" parametres_A=$Coefficient_R"
set PaRaM="$PaRaM"" parametres_B=$Coefficient_V"
set PaRaM="$PaRaM"" parametres_C=$Coefficient_B"
set PaRaM="$PaRaM"" parametres_D=$FLuMiNaNcE"
set PaRaM="$PaRaM"" graine_X=$graineR"
set PaRaM="$PaRaM"" graine_Y=$graineV"
set PaRaM="$PaRaM"" graine_Z=$graineB"
set PaRaM="$PaRaM"" bornes_inferieures_X=$NOIR bornes_superieures_X=$BLANC"
set PaRaM="$PaRaM"" bornes_inferieures_Y=$NOIR bornes_superieures_Y=$BLANC"
set PaRaM="$PaRaM"" bornes_inferieures_Z=$NOIR bornes_superieures_Z=$BLANC"
set PaRaM="$PaRaM"" formater=VRAI entiers=VRAI"
execRVB $xrv/EquationsIndeterminees_3D.01$X ne=$COULEURS $PaRaM Alleger=VRAI > $FPaLeTtE%s
XYmaxNe $NOIR $BLANC 0 0
#20210515095845____:execRVB $xrv/store_niveau$X ne=$COULEURS LISTE_NIVEAU=$FPaLeTtE.2%s Ndenormalises=VRAI R=$paletteR%s $formatI #
execRVB $xrv/store_niveau$X ne=$COULEURS LISTE_NIVEAU=$FPaLeTtE%s Ndenormalises=VRAI R=$paletteR%s $formatI
FilSTmpE FLuMiNaNcE
#20210515095845____:FilSTmpE FDegrade #
#20210515095845____:FilSTmpE FLuminance #
FilSTmpE FPaLeTtE