IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Besoin d'un petit coup de main pour corriger une sinusoIde


Sujet :

C

  1. #41
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    10 156
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juillet 2006
    Messages : 10 156
    Points : 14 397
    Points
    14 397
    Par défaut
    Bonjour,

    j'ai trouvé 5 minutes ( 2 heures, oui !) pour concocter ce test, certainement mieux que celui d'hier, pondu à l'arrache en oubliant la notion de volume :
    Code pascal : 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
    17
    18
    19
      v,i,a,b,c: integer;
      angle,volume: double;
    begin
      memo1.lines.add('  v   volume');
      for v := 0 to 10 do begin
        volume := v / 10;
        memo1.lines.add(format('%3d %7.3f', [v, volume]));
        memo1.lines.add('            i   angle  a   b   c');
    //    for i := 0 to 255 do begin
        for i := 0 to 9 do begin
          angle := i * 1.408; // = 359 / 255, conversion des 256 unités en 360 °
          a := round(127 + volume*sin(angle)); // va de 1 à 254 => une position perdue, f(0) = 127
          b := round(128 + volume*sin(angle)); // va de 1 à 255 => une position perdue, f(0) = 128
          c := round(127.5 + (volume+0.5)*sin(angle)); // va de 0 à 255 => pas de position perdue, f(0) = 128
          if ( ( a <> b ) and ( b <> c ) ) then
            //if ( a <> c ) then // si ligne activée --> rien d'affiché, donc a = c
              memo1.lines.add(format('          %3d %7.3f %3d %3d %3d', [i,angle,a,b,c]));
        end;
      end;
    et ça donne ça, avec la modif for i := 0 to 9..., histoire de ne pas passer l'après-midi dans des lignes de chiffres :
    Code pascal : 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
      v   volume
      0   0.000
                i   angle  a   b   c
                3   4.224 127 128 127
                4   5.632 127 128 127
                manque la ligne 5 
                manque la ligne 6
                7   9.856 127 128 127
                8  11.264 127 128 127
      1   0.100
                idem précedent
      2   0.200
                idem précedent
      3   0.300
                idem précedent
      4   0.400
                idem précedent
      5   0.500
                idem précedent
      6   0.600
                i   angle  a   b   c
                manque la ligne 3
                4   5.632 127 128 127
                manque la ligne 5 
                manque la ligne 6
                7   9.856 127 128 127
                8  11.264 126 127 126
      7   0.700
                i   angle  a   b   c
                3   4.224 126 127 126
                4   5.632 127 128 127
                manque la ligne 5 
                6   8.448 128 129 128
                7   9.856 127 128 127
                8  11.264 126 127 126
      8   0.800
                i   angle  a   b   c
                3   4.224 126 127 126
                4   5.632 127 128 127
                5   7.040 128 129 128
                manque la ligne 6
                7   9.856 127 128 127
                8  11.264 126 127 126
      9   0.900
                i   angle  a   b   c
                3   4.224 126 127 126
                manque la ligne 4
                5   7.040 128 129 128
                manque la ligne 6
                7   9.856 127 128 127
                8  11.264 126 127 126
     10   1.000
                i   angle  a   b   c
                3   4.224 126 127 126
                manque la ligne 4
                manque la ligne 5 
                manque la ligne 6
                7   9.856 127 128 127
                8  11.264 126 127 126

    Même manip' en décommentant le test sur l'égalité if ( a <> c ) then :
    Code pascal : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      v   volume
      0   0.000
                i   angle  a   b   c
    ... de 1 à 9, toutes lignes identiques
     10   1.000
                i   angle  a   b   c
    Et même en réactivant for i := 0 to 255 do... : aucun résultat, donc a = c tout du long.

    Maintenant, à quoi ça sert ?
    Guesset au secours !
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  2. #42
    Membre expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    mai 2013
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : mai 2013
    Messages : 985
    Points : 3 087
    Points
    3 087
    Par défaut
    Bonjour Jipété,

    Je regarde, mais il me semble déjà que le code suppose des degrés et non des radiants.

    Autre chose, l'amplitude se balade entre 0 et 1 ce qui laisse une marge d'arrondis seulement entre -1, 0 et +1. Les 1/100 (enfin 1/127 ou 128) de différence ne peuvent apparaître.

    Salut
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  3. #43
    Membre expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    mai 2013
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : mai 2013
    Messages : 985
    Points : 3 087
    Points
    3 087
    Par défaut Images sinusoïdales
    Bonjour,

    Une partie du code utilisé (si ça intéresse, le code complet est disponible) :
    Code PASCAL : 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    procedure TMainForm.CalcSin;
    var
       v, i, imax : integer;
       sA, sB, sC : integer;                         // Signaux générés
       AB, BC, CA : Integer;                         // Compte les différences entre les signaux
       clrA, clrB, clrC : TColor;
       angle, delta, volume : double;
    begin
       lblAB.Caption := '0';
       lblBC.Caption := '0';
       lblCA.Caption := '0';
       imax  := 255;
       delta := 2.0*PI/imax;                         // On fait "presque" un tour complet
       volume:= 0.0;
       img.Canvas.Brush.Color:= 0;
       img.Canvas.FillRect(0,0,256, 512);
       for v := 1 to 10 do begin
          volume += 12.7;                            // 0 (exclus) à 127
          lblVol.Caption := Format('%5.1f', [volume]);
          AB := 0;
          BC := 0;
          CA := 0;
          angle  := 0;
          for i := 0 to imax do begin
             angle += delta;
             sA := round(127 - volume*sin(angle));   // 0 à 254 => une position perdue, f(0) = 127
             sB := round(128 - volume*sin(angle));   // 1 à 255 => une position perdue, f(0) = 128
             sC := round(127.5 - (volume+0.5)*sin(angle)); // 0 à 255 => gamme complète, f(0) = 128
             clrA := $FF0000 or ($0000FF and -Ord(sA = sB)) or ($00FF00 and -Ord(sC = sA));
             clrB := $0000FF or ($FF0000 and -Ord(sA = sB)) or ($00FF00 and -Ord(sB = sC));
             clrC := $00FF00 or ($FF0000 and -Ord(sC = sA)) or ($0000FF and -Ord(sB = sC));
             img.Canvas.Pixels[i, sA << 1] := clrA;
             img.Canvas.Pixels[i, sB << 1] := clrB;
             img.Canvas.Pixels[i, sC << 1] := clrC;
             img.Canvas.Pixels[i, (sA << 1) or 1] := clrA;
             img.Canvas.Pixels[i, (sB << 1) or 1] := clrB;
             img.Canvas.Pixels[i, (sC << 1) or 1] := clrC;
             if sA <> sB then inc(AB);
             if sB <> sC then inc(BC);
             if sC <> sA then inc(CA);
          end;
          lblAB.Caption := IntToStr(AB);
          lblBC.Caption := IntToStr(BC);
          lblCA.Caption := IntToStr(CA);
          Application.ProcessMessages;
          Sleep(1000);
       end;
    end;

    J'ai doublé la hauteur des points pour qu'il soient plus visibles.
    AB, BC, CA comptent le nombre d'écart pour chaque couple de signaux.
    Il y a un micmac pour avoir la couleur correcte en cas de superposition (clrA, ...).
    Le programme trace 10 sinusoïdales d'amplitudes croissantes d'où une seconde entre chaque tracé pour pouvoir lire les écarts.
    J'ai mis un signe moins dans les formules pour compenser l'inversion des axes graphiques peu mathématiques.

    Nom : Sinus.png
Affichages : 87
Taille : 20,9 Ko

    J'ai ajouté un zoom (le curseur de la souris était au sommet de l'avant dernière courbe) car les traces même séparées sont vues comme une seule en taille normale. Le cyan correspond au signal A superposé au signal C. Le rouge est le signal B.

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  4. #44
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    10 156
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juillet 2006
    Messages : 10 156
    Points : 14 397
    Points
    14 397
    Par défaut
    Salut bonjour,

    merci pour ce code mais je n'arrive pas à retomber sur tes valeurs ou sur ton dessin...

    J'ai utilisé un TImage de 512x512 et dans ton code il y a ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      imax  := 255;
      delta := 2.0*PI/imax;                         // On fait "presque" un tour complet
      volume:= 0.0;
      img.Canvas.Brush.Color:= 0;
      img.Canvas.FillRect(0,0,256,512);
    et moi, pour avoir le même dessin que toi, je suis obligé de modifier en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    //imax  := 255;
      imax  := 511;
    ...
    //img.Canvas.FillRect(0,0,256,512); // pourquoi 256 ?
    // de toute façon, résultat identique avec 512 dessous
      img.Canvas.FillRect(0,0,512,512);
    Mais alors, les valeurs sont fausses : de haut en bas,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    127.0 (ok)
    512
    255
    257
    Est-ce que c'est parce que je suis sous Linux Debian 64 bits ?

    Autre chose : le rendu des couleurs...
    Nom : 3zooms.png
Affichages : 80
Taille : 25,4 Ko

    à gauche le bord gauche de ton image bien zoomée et par-dessus une loupe observant la même zone sur mon image, on voit bien qu'il y a un problème de fidélité des couleurs.
    Mêmes remarques au centre et au bord droit (où j'ai mis la loupe en haut pour éviter d'avoir une image trop large) : une idée ?


    Seconde question (déjà posée) : Maintenant, à quoi ça sert, ce bel outil ?
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  5. #45
    Membre expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    mai 2013
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : mai 2013
    Messages : 985
    Points : 3 087
    Points
    3 087
    Par défaut That's all folks !
    Bonjour Jipété,

    Le zoom subit une anamorphose car l'image d'origine est de 256*512 ajustée à 512*512 dans le TImage. J'ai abandonné cela, non pas à cause des couleurs, mais des pentes qui ne sont pas respectées dans le zoom (plus abruptes car x2). L'image d'origine est en 256*256 mais pour voir un peu les décalages, elle est projetée sur un TImage de 512*512. L'image montrée est donc déjà un zoom x2. Mais ce n'est pas suffisant pour réellement distinguer deux couleurs cote à cote (l'œil perçoit une fusion) d'où le petit zoom à droite.

    Pour les couleurs, je suis sous Windows mais je ne pense pas que cela soit en cause même s'il est possible que l'ordre des composantes soit différent sous Linux (BGR sous Windows). Cela changera les couleurs sans modifier les résultats.

    A quoi ça sert ? Comme je l'avais déjà mentionné, dire que la courbe en 8 bits doit être non signée n'est qu'une partie de la spécification. C'est pourquoi, à titre d'illustration, j'ai proposé trois projections sur l'espace 0..255. La dernière solution a ma préférence, mais de la même manière que la norme impose des non signés en 8 bits, elle peut et doit spécifier comment sont projetés les signaux. Bien sûr, un mauvais choix ne provoquera qu'une altération de 1/127 soit -42 dB mais, pour un coupeur de cheveux en 4 comme moi, c'est intolérable .

    Je joins le code complet auquel j'ai ajouté un graticule simple : Sinus.zip

    Il y a du code permettant de bouger le graticule au clavier. Il est spécifique Windows , pour le désactiver, il suffit d'invalider le keypreview dans la fiche principale.

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  6. #46
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    10 156
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juillet 2006
    Messages : 10 156
    Points : 14 397
    Points
    14 397
    Par défaut
    Pas mal, ton truc !

    Mais pas compris pourquoi tu écris ce commentaire, if isDone then begin // Spécifique Windows, car ça fonctionne très bien chez moi à condition de remplacer, dans la ligne uses, ce Windows par le couple LCLintf, LCLtype et de modifier deux lignes (sinon, pas d'affichage) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // img.Picture.Bitmap.PixelFormat := pf32bit;
       img.Picture.Bitmap.PixelFormat := pf24bit;
    ...
    // imgZoom.Picture.Bitmap.PixelFormat := pf32bit;
       imgZoom.Picture.Bitmap.PixelFormat := pf24bit;
    Et ça fonctionne aussi bien au clavier qu'à la souris.

    Par contre, un truc m'échappe : la présence des 3 StaticText colorés en bas à gauche où rien ne s'affiche, normal, je n'ai trouvé aucune instruction concernant leur Caption.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  7. #47
    Membre expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    mai 2013
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : mai 2013
    Messages : 985
    Points : 3 087
    Points
    3 087
    Par défaut
    Bonjour Jipété,

    Citation Envoyé par Jipété Voir le message
    ...la présence des 3 StaticText colorés en bas à gauche où rien ne s'affiche, normal, je n'ai trouvé aucune instruction concernant leur Caption.
    Il n'y a pas de code pour ces StaticText (qui auraient du être de simples labels) : elle servent juste à rappeler la couleur correspondant à chaque signal (voir vue partielle).

    Nom : Sinus zoom.png
Affichages : 64
Taille : 10,7 Ko

    Je croyais que les touches virtuelles VK_xxx étaient propres à Windows et que les adaptations étaient plus douloureuses que remplacer des déclarations dans le uses. Tant mieux.

    J'utilise des pf32bit car l'alignement mémoire accélère les accès, mais je n'ai besoin ici que des 24 bits de poids faibles.

    Salut
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  8. #48
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    10 156
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juillet 2006
    Messages : 10 156
    Points : 14 397
    Points
    14 397
    Par défaut
    Bonjour guesset,

    on peut dire que l'affaire est dans le sac !
    Nom : rendu_guesset.png
Affichages : 66
Taille : 44,7 Ko

    à la différence près du rendu de la croix du zoom, comme on peut le voir ci-dessus...
    J'ai tenté de remplacer ton psDot par un psDash, pas mieux, alors ne prenons pas de risque et utilisons psSolid, ça fait deux jolis traits en croix, très bien.


    Maintenant, il y a un autre truc que je ne comprends pas, c'est ce genre d'instruction Img.Width >> 1 qui pour moi n'est pas lisible ni intuitif (je n'ai pas été élevé avec ça).
    N'y aurait-il pas moyen de les remplacer par * et/ou div ou / (si float) ? Ça serait tellement plus parlant.

    Parce que mine de rien, je n'ai toujours pas compris ton histoire d'image en 512 dont on n'utilise que 256, bref, j'ai remplacé partout 256 par 512 et ça me donne ça :
    Nom : image512.png
Affichages : 67
Taille : 31,0 Ko

    avec la curiosité que si je mets la croix tip-top au milieu, le zoom m'affiche le centre d'une image en 512x512 que je ne vois pas,

    Et comme je ne sais pas ce qui se passe avec ces >>, je n'avance pas,

    Merci pour ta patience et tes explications,
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  9. #49
    Membre expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    mai 2013
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : mai 2013
    Messages : 985
    Points : 3 087
    Points
    3 087
    Par défaut
    Bonjour Jipété,

    Citation Envoyé par Jipété Voir le message
    ...il y a un autre truc que je ne comprends pas, c'est ce genre d'instruction Img.Width >> 1 qui pour moi n'est pas lisible ni intuitif (je n'ai pas été élevé avec ça).
    N'y aurait-il pas moyen de les remplacer par * et/ou div ou / (si float) ? ...
    Tu peux allègrement remplacer Img.Width >> 1 par Img.Width div 2 car cela générera le même code (pour des entiers positifs). Mais pas de float ! Quelle horreur !

    Citation Envoyé par Jipété Voir le message
    ...je n'ai toujours pas compris ton histoire d'image en 512 dont on n'utilise que 256, bref, j'ai remplacé partout 256 par 512 et ça me donne ça...
    A la base, j'ai une image en 256*256 puisqu'une période fait 256 échantillon et que chaque échantillon est dans 0..255. La taille du bitmap est donc 256*256. Mais comme ce n'est pas très lisible, j'ai pris un TImage de 512*512 et activé le stretch du TImage qui projette le bitmap 256*256 sur les 512*512 du TImage. En français, c'est un zoom x 2. C'est plus lisible mais pas encore assez à mes yeux (c'est le cas de le dire), c'est pourquoi j'ai ajouté le petit zoom.

    Une position (x, y) sur le TImage correspond alors à une position (x div 2, y div 2) du bitmap (ou x >> 1 et y >> 1 ). C'est pourquoi, le pas élémentaire au clavier n'est pas 1 mais 2, sinon le graticule avancerait bien de 1 à chaque pression mais la position (dans le bitmap) n'avancerait qu'une fois sur deux.

    En mettant, 512*512 partout (TImage comme Bitmap) tu reviens à un ratio de 1 mais comme les signaux comportent seulement 256 échantillons d'au plus 256 valeurs, cela n'occupe que le premier quart du TImage. Cela explique pourquoi le zoom montre une partie centrée sur la moitié des coordonnées du graticule car le calcul de correspondance TImage -> Bitmap n'a pas changé.

    Salut
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  10. #50
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    10 156
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juillet 2006
    Messages : 10 156
    Points : 14 397
    Points
    14 397
    Par défaut
    Merci pour les précisions, du coup j'ai rajouté ça en bas à gauche de l'ihm :

    Nom : ajout.png
Affichages : 50
Taille : 7,4 Ko.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  11. #51
    Membre expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    mai 2013
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : mai 2013
    Messages : 985
    Points : 3 087
    Points
    3 087
    Par défaut
    Bonjour,

    Je vois que A + C (cyan) a été ajouté mais pas B + C (jaune). En théorie, il devrait y avoir également A+B (magenta) mais ces deux signaux ne se superposent jamais. Il n'y a donc pas non plus de A+B+C (blanc) alors que l'impression visuelle (faussée par la fusion de points complémentaires) est plutôt achrome sauf autour des points vers la ligne de base.

    Je crois que ce petit programme a montré les différences de courbes et qu'il a gagné d'être oublié. Ceci étant, cela ne répond pas à la question sur ce que la norme prévoit sur le type de projection des courbes sur des non signés de 8 bits .

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  12. #52
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    10 156
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juillet 2006
    Messages : 10 156
    Points : 14 397
    Points
    14 397
    Par défaut
    Yop !

    Citation Envoyé par Guesset Voir le message
    Je vois que A + C (cyan) a été ajouté mais pas B + C (jaune).
    Yakà demander,
    Nom : ajoutBplusC.png
Affichages : 19
Taille : 10,3 Ko

    Mais j'ai été obligé d'inverser la couleur du fond et la couleur de la fonte, sinon ce jaune trop brillant sur fond gris rendait le texte illisible.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. [Python 3.X] Besoin d'un petit coup de main pour du Algo->Python
    Par Pierre_Euh dans le forum Général Python
    Réponses: 9
    Dernier message: 31/01/2019, 10h15
  2. [Lazarus] Besoin d'un petit coup de main pour lister les CharSets d'une font
    Par Jipété dans le forum Lazarus
    Réponses: 16
    Dernier message: 22/10/2017, 14h51
  3. Réponses: 1
    Dernier message: 12/03/2014, 23h58
  4. Réponses: 4
    Dernier message: 06/09/2013, 18h22
  5. UPDATE trop compliqué, besoin d'un petit coup de main ;)
    Par pwangen dans le forum Requêtes
    Réponses: 1
    Dernier message: 17/02/2006, 12h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo