2009-06-03 4 views

Répondre

4

lignes Draw entre les points que vous calculerez avec fonction Math.sin. Vous devrez décider combien de points par cycle utiliser, un compromis entre la vitesse de dessin et la précision. Vraisemblablement, vous devrez également adapter l'amplitude à la zone à l'écran, puisque la fonction Sin retournera une valeur entre +1 et -1.

+0

Merci Martin, je vais essayer votre solution –

3

Comment faites-vous votre "dessin". WPF n'a pas d'événements OnPaint comme Winforms, ce qui peut s'avérer un peu compliqué. La façon de le faire en WinForms aurait été d'utiliser la méthode Graphics.DrawBezier

e.Graphics.DrawBezier(new Pen(new SolidBrush(Color.Red)), 
          new Point(0, 100), 
          new Point(50, 0), 
          new Point(50, 200), 
          new Point(100, 100)); 

Peut-être que cela peut être utile, mais je ne suis même pas sûr de savoir comment dessiner directement sur la toile WPF. Un simple coup d'œil en tant que MSDN montre qu'il possède un contrôle BezierSegment qui peut vous être utile.

2

Si vous voulez des courbes entre vos points, vous pouvez utiliser un PolyBezier pour dessiner votre onde sinusoïdale avec une PointCollection calculée à partir de la méthode Math.Sin. Alternitavely vous pouvez créer beaucoup de BezierSegments qui s'écoulent les uns des autres. Enfin ajoutez simplement votre PolyBezier ou BezierSegments à votre formulaire avec drawingarea.Children.Add (courbe) où la zone de dessin est la grille ou la toile que vous dessinez.

Questions connexes