Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

LISSAGE DE COURBES


Information sur la source

Catégorie :Graphique Classé sous : lissage, antialiasing, courbe, polybezier Niveau : Expert Date de création : 16/05/2000 Vu : 6 745

Note :
8 / 10 - par 5 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

Description

Avant tout, définir les variable suivantes:

Private Type POINTAPI
    X As Long
    Y As Long
End Type

Private Type Coord
    X As Double
    Y As Double
    z As Double
End Type

Private Declare Function PolyBezier Lib "gdi32" (ByVal hdc As Long, lppt As POINTAPI, ByVal cPoints As Long) As Long

 

Source

  • Dim Bez() As POINTAPI
  • Open "C:\.\Fichier.txt" For Input As 1
  • Do Until EOF(1) 'Fichier texte ouvert avec le n°1
  • Dim EchModifY As Double, EchModifX As Double
  • EchModifY = Report.Picture1.ScaleX(1, 0, 3)
  • EchModifX = Report.Picture1.ScaleY(1, 0, 3)
  • If EOF(1) Then Exit Do
  • ReDim Bez(np - 1)
  • For i = 1 To NbrePts 'NbrePts = Val. num. Integer
  • Input #1, X#, Y# 'Lecture dans un fichier texte, par exemple
  • Bez(i - 1).X = X
  • Bez(i - 1).Y = Y
  • Next
  • l& = PolyBezier(Picture1.hdc, Bez(0), UBound(Bez))
  • Loop
  • Close 1
Dim Bez() As POINTAPI

Open "C:\.\Fichier.txt" For Input As 1

Do Until EOF(1) 'Fichier texte ouvert avec le n°1
   Dim EchModifY As Double, EchModifX As Double
   EchModifY = Report.Picture1.ScaleX(1, 0, 3) 
   EchModifX = Report.Picture1.ScaleY(1, 0, 3)
                    
   If EOF(1) Then Exit Do
   ReDim Bez(np - 1)
   For i = 1 To NbrePts 'NbrePts = Val. num. Integer
      Input #1, X#, Y# 'Lecture dans un fichier texte, par exemple
      Bez(i - 1).X = X
      Bez(i - 1).Y = Y
   Next
   l& = PolyBezier(Picture1.hdc, Bez(0), UBound(Bez))
Loop
Close 1

Conclusion

Si vous utilisez une autre unité que le pixel, corrigez vos valeurs avec les instructions:
EchelleX = Picture1.ScaleX(1, 0, 3)
EchelleY =Picture1.ScaleY(1, 0, 3)
 

Commentaires et avis

signaler à un administrateur
Commentaire de PROGRAMMIX le 04/11/2004 18:32:31

Pourrais-tu nous mettre tout cela dans un projet et nous faire une capture ?

Merci...

signaler à un administrateur
Commentaire de MadM@tt le 25/03/2006 16:27:13

Salut, cette méthode m'interesse beaucoup mais j'ai du mal à utiliser ton code, que faut il mettre dans le fichier texte ??
Merci

signaler à un administrateur
Commentaire de dthuler le 28/06/2006 16:21:13

Donc si j'ai bien compris, on stocke des couples de coordonnées P(x,y) dans un fichier texte sous la forme:
X1,Y1
X2,Y2
X...
Puis on utilise ton bout de code, c'est ça?

Désolé d'être obtus aujourd'hui, mais je vois pas le pourquoi de la boucle i et de doubler le test EOF... tu veux bien m'éclairer?
Sympa en tout cas, je vais voir car ça peut vachement me servir pour une appli graphique, mais je vais l'utiliser avec une DB ;o) !
Encore merci pour ce code :)

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Lissage de courbe via Visual Basic [ par Adoc5 ] Salut tout le monde,Dans Excel j'ai un tableau avec lequel j'ai tracé une courbe qui est assez bruitée. J'aimerai la lisser en automatisant ça sous VB API PolyBezier [ par nikko_s ] Bonjours tous le monde,Je souhaite effectuer un lissage de courbe avec l'API polyBezier mais je ne trouve pas d'exemple satisfaisant de l'utilisation courbe de tendance [ par latote ] Bonjour tout le monde !!!!!je souhaite effectuer une courbe de tendance sur mom histogramme.jusque là pas de problème.sauf  ke je souhaite qu'elle s'a tracé de courbe dans un contenant sur une feuille avec VS2005 [ par gearman ] Bonjour à tous,J'ai migré le développement de mon logiciel de VB6 vers Visual Studio 2005. J'ai eu bien sur beaucoup de problèmes, et il y en a un en [ZEDGRAPH] Avoir plusieurs couleurs dans une courbe ? [ par Toumar ] Bonjour tout le monde,J'utilise Zedgraph dans mon projet, et je cherche à obtenir ce genre de résultat:[URL=http://img98.imageshack.us/my.php?image=co programme pour tracer une courbe [ par sweet88 ] Bonjour à tous.Je suis en premiére année en ingénieurie, et on a un mini projet à rendre le sujet est :Elaboration d'un programme de traçage de la cou tracage courbe 2D [ par biker45 ] Bonjour, je cherche à  tracer une courbe 2D. Les données seront extraites  d'un fichier txt. Donc je l'ouvre, je fait les calcules qui m'interessent s Ignorer les cellules vides [ par pafacile ] Bonjour à tous,Je travaille sous Excel et je commence à m'arracher les cheveux... Voilà mon soucis:J'ai crée une macro qui trace un graphique tout sim Problème avec des cellules vides [ par pafacile ] Bonjour à tous,Je travaille sous Excel et je commence à m'arracher les cheveux... Voilà mon soucis:J'ai crée une macro qui trace un graphique tout sim Changer l'aspect d'une courbe [ par pafacile ] Bonjour à tous,J'ai un Macro qui trace des graphiques dans excel 2003.Je souhaite rajouter quelques ligne de code pour lui demander de mettre ma courb


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,359 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.