Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » Forum Ti68K » Programmation C » Representation (26 réponse(s))
./POST DE DEPART (post n°0)   Marquer comme non lu.
Benjy Ecrit le: Lundi 16 août 2004 à 18:52 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


Eu bon déja pour le titre desolé je ne sait pas quoi mettre.
Donc voila j'expose mon probleme, c'est pour mon traceur de courbe.
Alors c'est pour faire les petits points autrement dit la graduation. Donc je calcul la valeur que j'ai par pixel. Pour un xmin=-10 et xmax=10 cette valeur est de 0.126582. Ensuite xscl=1 il faut donc un petit traits tous les 1 environ comme le fait la TI donc pour ce la je part de -10 et je decrement de 0.126582 jusqu'a ce que j'arrive a 8.98734 et la mon probleme se pose il faut qu'a cette valeur qui est la plus proche de 9 je mette un trait mais comment faire en C pour savoir qua cette valeur je doit mettre un pixel voila tout mon probleme j'espere avoir ete assez claire merci.
-Edité le Mardi 17 août 2004 à 21:26 par benjy-
-Edité le Mercredi 18 août 2004 à 11:55 par benjy-
Le langage C y'a pas mieux!!!
    
./Post n°1   Marquer comme non lu.
geogeo Ecrit le: Lundi 16 août 2004 à 20:01 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Je n'ai pas compris le problème désolé.
Mais normalement il suffit d'utiliser dans ton cas les virgules flottantes soit float. De calculer le pas d'affichage sur l'écran?
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°2   Marquer comme non lu.
Benjy Ecrit le: Lundi 16 août 2004 à 20:14 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


J'en etait sur je ne sait pas trop comment vous expliquer ca.
Bon alors je fait un traceur de courbe comme celui de la TI et la mon probleme c'est les graduation.
Je reprend mon exemple donc on a Xmin=-10 et Xmax=10.
L'ecran fait 160 et pour faire plus simple je n'utilise que 159, comme le traceur TI.
Donc on a 159 pixels moins 1 pour l'axe d'origine ca nous fait donc 158 pixels.
On divise 158 par 2 pour la partie negative et la partie positive.
On a donc 79 pixels de chaque cote.
Ensuite on calcule la valeur de chaque pixel, pour cela on fait abs((-10)+abs(10))/158 ce qui nous donne 0.126582 par pixel.
Bon maitenan on arrive a mon fameux probleme la graduation donc je veut un trait tous les 1, en sachant que l'on a 79 entre -10 et 0 ca ne tombera pas juste.
Alors je part de -10 et je decremente de 0.126582 en sachant qu'il faudra placer un premier trait a environ 9 et que ca ne tombera pas juste puisque ca tombe a 8.98734.
Donc comment faire pour placer un trait a chaque environs d'unite??
Le langage C y'a pas mieux!!!
    
./Post n°3   Marquer comme non lu.
geogeo Ecrit le: Lundi 16 août 2004 à 21:12 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


On va résumer, tu écoupe ton écran en 2 zones, ça je vois tu en déduit que physiquement tu as 79 pixels dans chaque zone. Tu cherches à déterminer virtuellement un autre écran avec un nouveau pas genre un écran de -10 à 10 avec 0.2 pour un pixel.

Il faut trouver l'opération mathématique inverse qui puisse te donner la coordonnée x et y réel à partir de coordonnées virtuelle genre. Je prend un écran à 1 dimesnio, soit une ligne, cette écran va de 0 à 10 alors que l'écran des TI va de 0 à 159. J'ai la coordonnée 2.5 qui doit correspondre à :

(159/10)*2.5

Soit (Taille de l'écran, zone positive/Taille de l'écran virtuel zone positive)*coordonnée virtuelle.

Pour aller plus loin, nous avons un écran virtuel de -1.2 à 52.3 pour x et y
Le centre se situe aux coordonnées, 3, 3.

Soit un pixel à un pas de 158/abs(VScreen_x)+abs(VScreen_y)=2.95

Nous voulons placer un point à la coordonnée virtuelle 0.23, 24.5

(0.23*2.95)+3 = 4
(24.5*2.95)+3 = 75

Donc le point sera à la coorodnnée 4, 75 physquement. :)

N'oublions pas que la coordonnée 0,0 se trouve en haut à gauche alors que normalement sur un traceuer c'est autrement, donc encore un petit calcul à faiere soit une petite soustraction à faire suivant y.

Je ne vois pas comment expliquer mieux.
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°4   Marquer comme non lu.
Benjy Ecrit le: Lundi 16 août 2004 à 21:44 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


Bon lol non ca n'est pas ca :(:(:( mince si vous comprenez pas vous allez pas pouvoir m'aider.
Ce que je veux faire ce sont pes petits trait tous les x pix comme un papier millimetre quoi. Comme le traceur de la TI!!
Mais pour encore et toujour le meme exemple, xmin=-10 et xmax=10,
donc xmin en coordonnées TI se trouve a x=0 y=49 et xmax se trouve a x=158 y=49,
et ce que je veut faire c'est gradue mon axe donc en sachant que le 0 se trouve a x=79 et y=49.
On a donc de chaque cote de ce 0 10/79=0.126582 par pixel de l'ecran.
Reste et la mon probleme intervient a gradué cet axe de la facon suivante:
Si on avait 80 au lieu de 79 ca ferai un trait tous les 8pixels, hors la il fait 79 et donc on a 0.126582 par pixel,
donc en partant de xmin=-10 on decrement -10+0.126582=-9.87342........... jusqu'a xmax=10 comme ca.
Mais il faut place un trait toute les unite, donc on continue a decremente jusqua ce que l'on arrive tout pres de -9 le plus pres possible, qui est avec ce pas -8.98734,
et a ce moment on place un trait,
puis on continue comme ca jusqua -8, -7, -6 ......
Mais c'est justement ca que je n'arrive pas a faire comment determiner en decrementan qu'on est le plus pres de l'unite et a ce moment la place un trait.
En esperant cette foit avoir ete clair.:)
Le langage C y'a pas mieux!!!
    
./Post n°5   Marquer comme non lu.
Kevin Kofler Ecrit le: Lundi 16 août 2004 à 23:15 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Tu pars des unités et tu détermines le pixel le plus proche, pas l'inverse.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°6   Marquer comme non lu.
Benjy Ecrit le: Lundi 16 août 2004 à 23:30 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


Eu et comment je peut faire? C'est a dire que je part de -10 jusqua -9 mais comment je determine le pixel le plus proche?
-Edité le Lundi 16 août 2004 à 23:30 par benjy-
Le langage C y'a pas mieux!!!
    
./Post n°7   Marquer comme non lu.
Kevin Kofler Ecrit le: Lundi 16 août 2004 à 23:46 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Tu arrondis.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°8   Marquer comme non lu.
Benjy Ecrit le: Lundi 16 août 2004 à 23:55 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


Comment ca j'arondis ca marchera pas!! Si le pix avant 9 est 8.956 et celui d'apres est 9.123 si je les arondis il donneront tous les deux 9!! Alors comment faire?
Le langage C y'a pas mieux!!!
    
./Post n°9   Marquer comme non lu.
Benjy Ecrit le: Mardi 17 août 2004 à 09:44 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


En gros comment savoir quel est le nombre le plus pres de l'unite. Merci
Le langage C y'a pas mieux!!!
    
./Post n°10   Marquer comme non lu.
geogeo Ecrit le: Mardi 17 août 2004 à 10:48 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Bah tu arrondis.
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°11   Marquer comme non lu.
Benjy Ecrit le: Mardi 17 août 2004 à 11:08 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


ok j'ai compris merci!!!
Le langage C y'a pas mieux!!!
    
./Post n°12   Marquer comme non lu.
Benjy Ecrit le: Mardi 17 août 2004 à 21:26 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


Reouverture du topic pour un autre probleme toujour dans la lignée.
C'est le pas donc quand mon ecran de traceur fait -10/10 c'est simple je fait
(abs(-10)+abs(10))/158 ce qui me donne mon pas mais quand j'ai -10/20 la je n'arrive pas a trouve de relation car le pas etant different de chaque cote comment faire? Merci
Le langage C y'a pas mieux!!!
    
./Post n°13   Marquer comme non lu.
geogeo Ecrit le: Mardi 17 août 2004 à 23:47 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Hein? Le pas ne change pas.
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°14   Marquer comme non lu.
Benjy Ecrit le: Mercredi 18 août 2004 à 08:55 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


Et bien si. Avec en abcisse x comprit entre -10 et 20 de chaque cote du 0 un pixel ne vaut pas la meme valeur. Alors comment la calculer?
Le langage C y'a pas mieux!!!
    
./Post n°15   Marquer comme non lu.
Lionel Debroux Ecrit le: Mercredi 18 août 2004 à 09:01 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

> Avec en abcisse x comprit entre -10 et 20 de chaque cote du 0 un pixel ne vaut pas la meme valeur.
Utilise l'application de graph builtin pour te rendre compte de la grosse bêtise que tu es en train de dire...
Lionel Debroux - membre de TICT.
    
./Post n°16   Marquer comme non lu.
Benjy Ecrit le: Mercredi 18 août 2004 à 09:53 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


Bon ouai j'ai vu mais alors pourquoi le 0 se trouve a 0.063291? Ca je comprend pas.
-Edité le Mercredi 18 août 2004 à 10:10 par benjy-
Le langage C y'a pas mieux!!!
    
./Post n°17   Marquer comme non lu.
Benjy Ecrit le: Mercredi 18 août 2004 à 11:54 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


Bon ca y'est pour le pas c'est regle mais maintenant c'est pour une representation que j'ai un probleme.
Alors je veut representer x^2 dans un espace ou -10<=x<=10,
mais le mon probleme pour le moment c'est qu'etant donne que je prend la valeur de x de -10 a 10,
ben ca plante car ca sort de l'ecran alors commen faire? Merci
PS: y est lui aussi comprit entre -10 et 10
-Edité le Mercredi 18 août 2004 à 11:58 par benjy-
Le langage C y'a pas mieux!!!
    
./Post n°18   Marquer comme non lu.
Lionel Debroux Ecrit le: Jeudi 19 août 2004 à 09:22 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

Vérification de limites...
Lionel Debroux - membre de TICT.
    
./Post n°19   Marquer comme non lu.
Benjy Ecrit le: Jeudi 19 août 2004 à 11:27 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


Bon alors voila quand je fait ceci

  float ymin=-10,
  ymax=10,
  xmin=-10,
  xmax=10;

  //Variable fonction
  float yscl=(fabs(ymin)+fabs(ymax))/98,
  pix=(fabs(xmin)+fabs(xmax))/158, //temps par pix
  y,absisse,t;

  for(t=xmin,absisse=0;absisse<=158;t+=pix,absisse+=1)
  {
    y=(pow (t,2))/yscl;
    DrawPix (absisse,y+49,A_NORMAL);
  }


ca marche mais quand j'inverse mon y ou mon pow et bien c'est la qu'il me reste des point sur l'ecran alors pourquoi?
Le langage C y'a pas mieux!!!
    
  :: Index » Forum Ti68K » Programmation C » Representation (26 réponse(s))
Pages : 1/2     « [1] 2 » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 77.05ms avec 18 requetes