ctx_man
Messages postés285Date d'inscriptionmardi 28 décembre 2004StatutMembreDernière intervention20 janvier 20133 20 juil. 2007 à 16:01
Salut !
Ta fonction c'est quelque chose de la forme y = f(x)
avec f(x) = (0.25 + 0.22508*Math.Sin(((Math.PI/4))*x)+0.0932*Math.Cos(((Math.PI/4))*x)) dans ton cas.
Donc, pour tracer ta fonction sur du papier millimétré, tu fais comment ?
Tu calcul f(0), et tu met ton point en [x=0; y=f(0)]
puis tu calcul un autre f(x), par exemple f(1), et tu refait pareil.
Enfin tu relie les points.
Et bien l'écran, c'est comme du papier millimétré. L'unité de mesure n'est pas le milimètre, mais le pixel. A part ca, rien ne change.
Admettons que ta fenetre de traçage fasse 100px par 100px.
Tu trace f(x) avec x allant de 0 à 20 (exemple)
donc, petit coefs : x 0 -> tx 0; x = 20 -> tx = 100; => coeffX = 100 / 20 = 5 && decalX = 0;
tu encadre les valeurs max/min de y de la meme facon :
y allant de -100 à 100 : y -100 -> ty 0; y = 100 -> ty = 100; => coeffY = 1 && decalY = -100;
Maintenant, en utilisant les coordoonées des pixels, tu obtient les valeurs de ta fonction :
p[X;Y] = [X * coeffX + decalX ; f(X) * coeffY + decalY]
Tu n'a plus qu'a tracer tes points. Si tu trace un point pour chaque pixel de ta zone de tracage, ca risque de prendre un paquet de temps.
Tu peux donc faire comme tu fait à la main : tu trace un pixel tous les 10/20 pixels en largeur. Et tu les relie.
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 21 juil. 2007 à 00:05
Salut,
Il n'y a pas de commande à proprement parler.
Il doit bien exister quelques librairies destinées à cet usage mais de tête je ne peux pas t'en citer.
En revanche si tout ce qu'il te manque est de tracer la courbe à partir de points calculé, tu peux peut être regarder du côté de ZedGraph.
luudo
Messages postés10Date d'inscriptionjeudi 18 janvier 2007StatutMembreDernière intervention22 juillet 2007 21 juil. 2007 à 16:14
il n'y a rien a faire je n'arrive rien a faire pour tracer mes points
si je vous laisse les coordonnées de 4 points serait t'il possible d'avoir un exemple
point A (X,Y) : 1 ; 0,39
point B 2 ; 1,03
point C 3 ; 0,32
point D 4 ; -0,14
en fait il faut utiliser une picture box c'est bien ca ?
merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
ctx_man
Messages postés285Date d'inscriptionmardi 28 décembre 2004StatutMembreDernière intervention20 janvier 20133 21 juil. 2007 à 19:24
Salut !
Je ne pense pas q'une librairie de dessin additionnelle soit nécéssaire pour tracer une courbe. Si tu en veux vraiment, bah il y a OpenGL, DirectX, Allegro, SDL, .....
Mais bon, perso GDI me semble suffisent.
Pas besoin de picturebox ou je ne sais quoi. N'importe quel control/form peut servire de feuille de dessin.
Cherche du coté de Graphics.DrawLine, Graphics.DrawBezier ou encore Graphics.DrawCurve)
Tu trouvera toutes les infos que tu veux sur msdn. Ces objets/methodes sont dans System.Drawing.