Lissage de courbes

Contenu du snippet

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 / Exemple :


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)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.