Comment afficher les coordonées de trois sinusoides

[Résolu/Fermé]
Signaler
Messages postés
49
Date d'inscription
lundi 4 décembre 2000
Statut
Membre
Dernière intervention
29 avril 2009
-
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
-
Bonjour tout le monde, je suis étudiant et j'ai besoin de vos conseils étant novice dans le C#.
 
Mon objectif est de créer un utilitaire qui enverra dans un fichier texte en binaire les ordonnées de trois sinusoïdes déphasée de 120°  afin de pouvoir les afficher dans un label.

Premièrement je créer le fichier, mes valeurs de déphasage, puis je créer ma fonction sinus et je converti sa valeur de retour qui est un double en binaire pour ensuite l'écrire dans mon fichier.

Le problème c'est que le compilateur me jete quand la valeur à convertir est négative.

Ma question est : comment est ce que je peut convertir convenablement la valeur de retour de la fonction sinus en binaire et ensuite l'écrire dans un fichier dans ce même langage ?

Mon code ci dessous est en deux parties la première étant celle qui doit créer et convertir la valeur de retour des sinus et la deuxième partie doit gérer l'affichage dans des labels des valeurs des ordonnées.

Je vous remercie par avance pour vos réponses

private void button1_Click(object sender, EventArgs e)
        {
            if (!File.Exists("Monbeautexte.txt"))
            {
            //Création d'un fichier vide au format binaire
            BinaryWriter bw = null;
            bw = new BinaryWriter(File.Create("Monbeautexte.txt"));
           
                double Dephasage1 = (120*Math.PI)/180;
                double Dephasage2 = 2 * Dephasage1;
               
            for (double i = 0; i < 4 * Math.PI; i += (4 * Math.PI)/1000)
            {
                double x = Math.Sin(i);         //Crée la fonction sinus
                x = Math.Round(x, 3);           //Permet d'arrondir la valeur à 3 chiffres après la virgule
                int x1 = Convert.ToByte(x);     // Converti en Byte
                bw.Write(x1);                   // Ecrit sur le fichier
               
               
                double y = Math.Sin(i + Dephasage1);
                y = Math.Round(y, 3);
                int y1 = Convert.ToByte(y);
                bw.Write(y1);
             

                double z = Math.Sin(i + Dephasage2);
                z = Math.Round(z, 3);
                int z1 = Convert.ToByte(z);
                bw.Write(z1);
            }
      
            bw.Close();

               

 private void button2_Click(object sender, EventArgs e)
        {
            FileStream fs = null;
            BinaryReader br = null;

            //J'ouvre le fichier Monbeautexte.txt
            fs = File.Open("Monbeautexte.txt", FileMode.Open);
            br = new BinaryReader(fs);

            //Je récupere par groupe de deux octets ce que le fichier contient
            short x = br.ReadByte();
            short y = br.ReadByte();
            short z = br.ReadByte();
            br.Close();

            //Je veut récupérer dans des labels la valeur de chaqune de mes variables
            //Premièrement je converti les variables de type short en string
            string x1 = x.ToString();
            string y1 = y.ToString();
            string z1 = z.ToString();

            //Ensuite j'affiche ces variables dans des labels texte.
            label1.Text = x1;
            label2.Text = y1;
            label3.Text = z1;
        }

5 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
58
??? Pas compris
Si je fais :

BinaryWriter bw = new BinaryWriter(File.Create("test.bin"));
bw.Write(4.5d);
// Close...

Alors le fichier sera écrit en binaire...
Où est le problème?

<hr />
-Blog-
-Site Perso-
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
58
Salut,
Pourquoi tu n'écris pas directement ton double avec bw.Write?
Pourquoi tu stocks les informations dans un fichier txt alors que tu écris en binaire?

Ensuite tu peux relire avec ReadDouble, ReadXXX...

Sinon, si tu t'intéresses aux harmoniques, tu peux jeter un oeil sur ce code (rien avoir directement avec ton problème) :
http://www.csharpfr.com/codes/GENERATION-AFFICHAGE-HARMONIQUES_44428.aspx

<hr />
-Blog-
-Site Perso-
Messages postés
49
Date d'inscription
lundi 4 décembre 2000
Statut
Membre
Dernière intervention
29 avril 2009

Merci de ta réponse,
Mais ma contrainte justement c'est d'écrire en binaire sur le fichier.

En fait l'utilitaire que je créer va me servir à simuler les données d'un accéléromètre qui seront stockées dans un fichier en binaire.

Pour me familiariser dans un premier temps on m' a demander de créer des sinusoides et de stocker ces coordonnées.

Le but de ce projet va etre d'exploiter ces donneés binaires avec la bibliothèque ZedGraph pour ainsi générer des courbes.
Messages postés
49
Date d'inscription
lundi 4 décembre 2000
Statut
Membre
Dernière intervention
29 avril 2009

Ah oui en fait j'essayer de convertir un double en binaire mais j'avais omis le fait que quand on ecrit avec cette fonction ca écrit directement en binaire.. Merci.. faut que je me concentre plus ^^

Mais est ce que tu (quelqu'un) aurait une idée pour exploiter des données binaires sur zedgraph car je n'ai pas beaucoup de pratique sur le sujet ...
Afin de recréer des courbes à partir de ces données la .

Merci bien
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
58
Une question par topic, sinon on s'en sort pas...
Suite ici: http://www.csharpfr.com/forum/sujet-DEBUTANT-ZEDGRAPH_1262710.aspx#1

<hr />
-Blog-
-Site Perso-