| |

VB.NET - Ein- und UmsteigerDrawCurve 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 |  |
 | 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 |
  |
|
sevISDN 1.0 
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Neu! sevEingabe 3.0 
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere Infos
|
|
|
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
|
|