vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
DrawCurve für Bitmap? 
Autor: Knogge
Datum: 23.01.09 23:32

Hallo!

mit folgendem Code zeichne ich eine in die Textbox1 eingegebene Funktion (beispielsweise x^2) auf ein Panel. Nun würde ich die Funktion gerne intern auf ein Bitmap zeichnen und dieses anzeigen.

Nur fehlen mir bei der Bitmap-Klasse Funktionen wie DrawCurve. Hat jemand eine Idee, wie ich das am besten als Bilddatei bekomme?

    Sub DrawCoordinates()
        Dim x1, x2, y1, y2 As Integer
        Panel1.Refresh()
        x1 = 0
        x2 = Panel1.Size.Width
        y1 = Panel1.Size.Height / 2
        y2 = Panel1.Size.Height / 2
        Panel1.CreateGraphics.DrawLine(Drawing.Pens.Black, x1, y1, x2, y2)
        x1 = Panel1.Size.Width / 2
        x2 = Panel1.Size.Width / 2
        y1 = 0
        y2 = Panel1.Size.Height
        Panel1.CreateGraphics.DrawLine(Drawing.Pens.Black, x1, y1, x2, y2)
    End Sub
 
    Sub CalcGraph()
        Dim SC As New MSScriptControl.ScriptControl
        SC.Language = "VBScript"
        Dim Formel As String
        Dim Muster As String = "^(([0-9\.\s\-+*/()^]|SQR|SIN|COS)+)$"
        Dim Regex As New Regex("")
        Dim x, y As Long
        Dim npx, npy As Integer
        Dim Formel2 As String
        Dim a() As System.Drawing.PointF
        Dim da As Boolean
        Dim p As Integer
        da = True
 
        Panel1.Refresh()
        DrawCoordinates()
        Formel = TextBox1.Text
        npx = (Panel1.Size.Width / 2) '+ 5
        npy = (Panel1.Size.Height / 2) '- 50
        p = 0
        For x = (Panel1.Size.Width / 2) * -1 To Panel1.Size.Width / 2
            Try
                Application.DoEvents()
                Formel2 = Formel.Replace("x", x)
                If Regex.IsMatch(Formel2, Muster, RegexOptions.IgnoreCase) Then
                    If da = True Then
                        ReDim a(0)
                        da = False
                    Else
                        ReDim Preserve a((UBound(a)) + 1)
                    End If
                    y = SC.Eval(Formel2)
                    a(UBound(a)) = New System.Drawing.PointF((npx + x * 35), ( _
                      npy - y * 35))
                Else
                    Exit For
                End If
            Catch
 
            End Try
            p = p + 1
        Next
        Try
            DrawCoordinates()
            Panel1.CreateGraphics.DrawCurve(Drawing.Pens.Red, a)
        Catch
            DrawCoordinates()
        End Try
    End Sub
Gruß und Danke im vorraus
Christian
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
DrawCurve für Bitmap?956Knogge23.01.09 23:32
Re: DrawCurve für Bitmap?702GPM24.01.09 00:03
Re: DrawCurve für Bitmap?592Knogge24.01.09 01:02

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel