Comment afficher les coordonées de trois sinusoides

Résolu/Fermé
damsdu64 Messages postés 49 Date d'inscription lundi 4 décembre 2000 Statut Membre Dernière intervention 29 avril 2009 - 30 janv. 2009 à 13:51
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 - 30 janv. 2009 à 17:28
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

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 60
30 janv. 2009 à 14:39
??? 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-
3
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 60
30 janv. 2009 à 14:07
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-
0
damsdu64 Messages postés 49 Date d'inscription lundi 4 décembre 2000 Statut Membre Dernière intervention 29 avril 2009
30 janv. 2009 à 14:24
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.
0
damsdu64 Messages postés 49 Date d'inscription lundi 4 décembre 2000 Statut Membre Dernière intervention 29 avril 2009
30 janv. 2009 à 15:00
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 60
30 janv. 2009 à 17:28
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-
0