begin process at 2012 02 16 08:08:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Multimédia

 > 

Image & Vidéo

 > 

API PolyBezier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

API PolyBezier

mardi 22 avril 2008 à 14:15:00 | API PolyBezier

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 de cette API en vb6.
Je souhaiterai procéder ainsi :

Mes points (ceux de mon graphique MSChart) sont stockés dans un tableau et  je voudrais faire un lissage de ces points via cette API et reconstruire la courbe avec Mschart ensuite.

J'aimerai avoir un exemple d'utilisation de cette api :

BOOL PolyBezier
(
  HDC          hdc,
  const POINT* lppt,
  DWORD        cPoints
)

hDc
[In]Handle to device context. trouve
lppt[In]Pointer to endpoints and control points.
cPoints[In]Count of endpoints and control points.

De plus j'ai trouver un exemple qui reconstruit la courbe lissée dans une picturebox grâce à Picture1.hdc (PolyBezier(Picture1.hdc,...)
Que dois-je utiliser comme paramètre avec ma MSChart à la place de .hdc ?

Merci
mardi 22 avril 2008 à 14:56:48 | Re : API PolyBezier

lolokun

Réponse acceptée !
Bonjour,

Tu peux récupérer le hdc de ta mschart en utilisant l'API suivante :

Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
GetDC (MSChart1.hwnd)

Il te suffit donc ensuite de mettre PolyBezier(Getdc(MsChart1.hwnd),... au lieu de picture1.hdc et cela devrait fonctionner

L'expérience, c'est une connerie par jour, mais jamais la même..
mardi 22 avril 2008 à 15:40:39 | Re : API PolyBezier

nikko_s

Réponse acceptée !
OK merci je récupère bien mon hdc avec cette fonction

Par contre toujours pas réussi à faire fonctionner l'api dans mon code...
Personne aurai un exemple concret pour cette api avec un control MSChart ?

Merci
mardi 22 avril 2008 à 17:13:13 | Re : API PolyBezier

lolokun

Réponse acceptée !
Re,

Tu trouveras quelques trucs (explication + 1 soucre) ici

Private Type POINTAPI
        X As Long
        Y As Long
End Type

Dim Bez(3) As POINTAPI
Dim i As Integer

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

Private Sub Command1_Click()

Bez(0).X = 0 
Bez(0).Y = 5
Bez(1).X = 2
Bez(1).Y = 3
Bez(2).X = 50
Bez(2).Y = 200
Bez(3).X = 300
Bez(3).Y = 140

Call PolyBezier(GetDC(MSChart1.hwnd), Bez(0), 4)

Ca a l'air de fonctionner, il faut juste que tu récupères tes valeurs dans ton tableau, et faire en sorte que l'échelle du mschart se redimensionne...

L'expérience, c'est une connerie par jour, mais jamais la même..
mardi 22 avril 2008 à 17:26:42 | Re : API PolyBezier

nikko_s

Réponse acceptée !
Ok je vais essayer ça tout de suite ! Par contre je tiendrai au courant que demain  car la je quitte mon lieu de stage et après plus de net, car pas internet chez moi en ce moment...

MERCI en attendant!

@ + bonne soirée
mercredi 23 avril 2008 à 10:16:05 | Re : API PolyBezier

nikko_s

Réponse acceptée !
Bonjour,

Alors, j'ai essayé ton exemple et ça a fonctionné tout de suite. Effectivement j'utilisais l'api quasiment comme ton exemple dans mon code sauf que j'utilisais une boucle pour remplir Bez.X et Bez.Y. J'avais une erreur dans cette boucle et mes tableaux étaient mal dimensionnés.
Cette soultion fonctionne.

Merci bonne journée

@+


Cette discussion est classée dans : points, api, hdc, courbe, polybezier


Répondre à ce message

Sujets en rapport avec ce message

Question sur Printer.hdc ????? [ par jcconi ] Je travaille sous access 2000 et j'utilise donc VBA! IL se trouve que je doit utiliser des api genre GetDeviceCaps. Mais c'est api on besoin d'un para roundrect en pointillée [ par Kelpan ] Salut je cherche déseperement le moyen de dessiner un rounded rectangle en pointillée grace à l'api roundrect.Vous me dirait de mettre la propriété dr API Rectangle hDC [ par peug ] Bonjour, j'essai de dessiner avec l'API.Dans un ActiveX, comment utiliser la fonction Rectangle ?Je crée une sub :Public Sub DrawRectangle(ByRef hDC A API - hDC Résolution PRinter [ par peug ] Bonjour,Je fais une ActiveX en utilisant les fonctions de dessin API. Lorsque je souhaite envoyer ce qui est dessiné sur le UserControl vers le hDC du Tracé de Courbe à partir de Points [ par polly60 ] salut, j'ai besoin d'aide...Voilà, j'ai une dizaine de points avec chacun des coordonnées(x,y) et donc je voudrai pouvoir tracé une courbe a partir de API : HDC et Setpixel [ par Stephane ] Salut à tous voila, dans le cadre d'un projet encadré, je realise une compression d'images. Mon problème est que au moment d'afficher l'image,(j'util Tracé d'une courbe "NON CONTINUE" [ par akdmks ] Bjr, J'ai une courbe a tracer dans une mschart, jusque la tout va bien. le prob, c'est que pour certains points, je n'ai pas la donnée, donc en gros, Besoin de tracer une courbe [ par Talere ] Bonjour,J'aurais besoin de tracer une courbe composé d'une quantité énorme de point (X;Y) (30000, 100000 points voir plus encore). De cette courbe, je aide [ par nico9360 ] bonjourje suis novice en visual basica mon boulot j ai une application vb qui permet de voir en temps reel une courbe représentantle profil d'une piéc


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,312 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales