Ce n'est pas faute d'avoir essayé, mais quand il manque des éléments je peux toujours lever le doigt, personne ne m'entend,
En plus, tu déformes le proverbe :
il n'y a pas pire sourd que celui qui ne veut rien entendre, nuance !
Comprendre c'est autre chose.
Quand, comme je l'ai dit, je lis dans un des bouquins que "Le coefficient alpha que l'on peut supposer positif (en changeant si besoin est alpha en alpha + ou - PI)", c'est ce "peut supposer" qui me rend perplexe : si l'auteur avait écrit "que l'on doit utiliser", j'aurais avancé.
Là je lis, je tourne dans tous les sens, j'entends et ne comprends pas.
Ben non, elles se succèdent de la même manière -- sinon je n'aurais pas posté ce truc-là : je me suis battu comme un beau diable pour avoir rouge-vert-bleu bien affiché, quel intérêt aurais-je eu à pondre un algo qui ne les affiche pas ainsi ?
C'est bien ce que je dis : je ne suis pas lu, ou pas bien, ou pas compris, alors que je me décarcasse à mettre des copies d'écran. Mais dans ce cas, ce n'est pas la peine, ça serait deux fois la même.
Et c'est curieux que tu ne reconnaisses pas tes sources, car c'est pourtant de ça que je suis parti :
Sauf que j'ai très vite été perturbé par le fait que pour parcourir dans le sens trigo (la flèche, le "+"), il faut utiliser le signe "-", un peu comme sur l'Estafette, qui a la même boîte de vitesse que toutes les bagnoles, mais montée à l'envers : la 1re est en bas, ça surprend…
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 r := fx_jpt(Phi, fx); g := fx_jpt(Phi - Pi2sur3, fx); b := fx_jpt(Phi - D_Pi2sur3, fx);
Mais bon, on y est arrivé, j'ai ma boîte noire, après tout, quand Mââme Michu va faire ses courses, avec sa 'tit'auto, elle ne se prend pas la tête pour savoir dans quel sens tourne le vilebrequin dans la culasse moteur, le tout c'est que quand elle passe la 1re ça avance !
+++
J'ai affiché les tiennes avec la maintenant classique ligne de log à la fin de, ça donne ça (juste le début, et édité) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 PROCEDURE TFormB.CalcMatrIm(La, Ha: uint; fx: uint); ... memo1.Lines.Add(format('Ym: %.3d, Xm: %.3d, r: %.3d, g: %.3d, b: %.3d',[Ym, Xm, r, g, b])); end;
et du coup tout le vert est décalé à partir de Xm à 129, on devrait ici (ligne 11) être à r: 255 g: 255
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 1er bloc, rouge à jaune Ym: 000, Xm: 000, r: 255, g: 000, b: 000 rouge pur Ym: 000, Xm: 001, r: 255, g: 001, b: 000 le vert commence à monter ... Ym: 000, Xm: 127, r: 255, g: 127, b: 000 Ym: 000, Xm: 128, r: 255, g: 128, b: 000 Ym: 000, Xm: 129, r: 255, g: 128, b: 000 il est là le souci : "g: 128" ligne précédente = OK, encore ici = bad Ym: 000, Xm: 130, r: 255, g: 129, b: 000 ... Ym: 000, Xm: 254, r: 255, g: 253, b: 000 Ym: 000, Xm: 255, r: 255, g: 254, b: 000
Et pareil pour les morceaux suivants.
En ce qui concerne ma manière de faire, j'ai aussi des lignes en double, elles se situent plus loin, par exemple en ligne 14, doublon de la 11
Et ça a l'air très compliqué de faire sauter ces lignes en double
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 1er bloc, rouge à jaune Ym: 000, Xm: 000, r: 255, g: 000, b: 000 rouge pur Ym: 000, Xm: 001, r: 255, g: 001, b: 000 le vert commence à monter ... Ym: 000, Xm: 127, r: 255, g: 127, b: 000 Ym: 000, Xm: 128, r: 255, g: 128, b: 000 Ym: 000, Xm: 129, r: 255, g: 129, b: 000 ici défaut wwx Ym: 000, Xm: 130, r: 255, g: 130, b: 000 ... Ym: 000, Xm: 254, r: 255, g: 254, b: 000 Ym: 000, Xm: 255, r: 255, g: 255, b: 000 rouge et vert à bloc = jaune 2e bloc, jaune à vert Ym: 000, Xm: 256, r: 255, g: 255, b: 000 encore à jaune Ym: 000, Xm: 257, r: 254, g: 255, b: 000 le rouge descend ...
Voilà mon truc,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if (Xm >= 0) and (Xm < 256) then begin r:=255; g:=Xm; b:=0; end; if (Xm >= 256) and (Xm < 512) then begin r:=511-Xm; g:=255; b:=0; end; if (Xm >= 512) and (Xm < 768) then begin r:=0; g:=255; b:=Xm-512; end; if (Xm >= 768) and (Xm < 1024) then begin r:=0; g:=1023-Xm; b:=255; end; if (Xm >= 1024) and (Xm < 1280) then begin r:=Xm-1024; g:=0; b:=255; end; if (Xm >= 1280) and (Xm < 1536) then begin r:=255; g:=0; b:=1535-Xm;end;
Partager