T&T
Lieutenant
- Registriert
- Feb. 2005
- Beiträge
- 692
Hallo,
ich bin Maschinenbaustudent (2.Semester) und wir haben an der FH grade angefangen ein bisschen mit VB zu programmieren, also ich bin noch Anfänger. Haben grad Prüfung in Informatik geschrieben und da musste man halt nen Sinus (mit einem gültigen VB-Code) zeichen(die Prüfung musste man auf nen Blatt Papier vollziehen, also nicht am PC). Ich habs natürlich daheim gleich ausprobiert was ich da hingezaubert habe, und die nüchterne Erkenntniss es funktioniert nicht
Naja, egal es gab noch einige andere Aufgaben die ich bestens konnte: Aber nun zum eigentlichen Thema. Diesen Sinus zu zeichnen läßt mir einfach keine Ruhe und sitzt schon einige Stunden vor dem PC und versuche es hinzubekommen, aber bis jetzt ohne Erfolg. Hab auch mal gegoogelt aber leider auch nix, also wende ich mich an euch.
Also ich will nen den Sinus in der Picturebox1 zeichnen und zwar in 0<=x<=2*PI mit der Periodenanzahl p (textbox1.text). dazu hab ich schon den mathe "code" geladen damit ich den Sinus nicht mit einer Reihenentwicklung selbest erstellen muss.
Wir haben bisher nur gerade Linien gezeichnet, also ne Line zwischen den Punkten (x1;y1) und (x2;y2) =>graph.drawline(Pen,x1,y1,x2,y2)
Ich wollte da ne for schleife reinhauen (for i=0 to 2*PI...) für sin(i), leider funktioniert das nicht, weil VB i in den Schritten 1,2,3 usw. zählt und dann kein flüssiger Graph sondern nur Striche rauskommen. Also muss ich den Sin irgendwie anders zeichnen, aber ich weiß nicht wie, also wer kennt sich ein bisschen aus und weiß ich das machen könnte?
Danke schon mal!
gruß T&T
ich bin Maschinenbaustudent (2.Semester) und wir haben an der FH grade angefangen ein bisschen mit VB zu programmieren, also ich bin noch Anfänger. Haben grad Prüfung in Informatik geschrieben und da musste man halt nen Sinus (mit einem gültigen VB-Code) zeichen(die Prüfung musste man auf nen Blatt Papier vollziehen, also nicht am PC). Ich habs natürlich daheim gleich ausprobiert was ich da hingezaubert habe, und die nüchterne Erkenntniss es funktioniert nicht

Naja, egal es gab noch einige andere Aufgaben die ich bestens konnte: Aber nun zum eigentlichen Thema. Diesen Sinus zu zeichnen läßt mir einfach keine Ruhe und sitzt schon einige Stunden vor dem PC und versuche es hinzubekommen, aber bis jetzt ohne Erfolg. Hab auch mal gegoogelt aber leider auch nix, also wende ich mich an euch.
Also ich will nen den Sinus in der Picturebox1 zeichnen und zwar in 0<=x<=2*PI mit der Periodenanzahl p (textbox1.text). dazu hab ich schon den mathe "code" geladen damit ich den Sinus nicht mit einer Reihenentwicklung selbest erstellen muss.
Wir haben bisher nur gerade Linien gezeichnet, also ne Line zwischen den Punkten (x1;y1) und (x2;y2) =>graph.drawline(Pen,x1,y1,x2,y2)
Ich wollte da ne for schleife reinhauen (for i=0 to 2*PI...) für sin(i), leider funktioniert das nicht, weil VB i in den Schritten 1,2,3 usw. zählt und dann kein flüssiger Graph sondern nur Striche rauskommen. Also muss ich den Sin irgendwie anders zeichnen, aber ich weiß nicht wie, also wer kennt sich ein bisschen aus und weiß ich das machen könnte?
Danke schon mal!
gruß T&T
Code:
Imports System.Math
Public Class Form1
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnZeichnen.Click
'Dimensionierung
Dim p As Single 'Periodenanzahl der Sinusfunktion
Dim b As Single 'Periozität des Sinus (y=sin(b*x+c))
Const PI As Double = 3.1415296 'PI
Dim scaleX As Single 'Skalierung x-Achse
Dim scaleY As Single 'Skalierung y-Achse
Dim i As Short 'Laufvariable
Dim y1 As Single 'Hilfsvariable
Dim y2 As Single 'Hilfsvariable
Dim graph As System.Drawing.Graphics = PictureBox1.CreateGraphics 'Graph
Dim pen As New System.Drawing.Pen(System.Drawing.Color.Black) 'Stift
'Skalierung
scaleX = (PictureBox1.Width - PictureBox1.Margin.Left - PictureBox1.Margin.Right) / (2 * PI)
scaleY = (PictureBox1.Height - PictureBox1.Margin.Top - PictureBox1.Margin.Bottom) / 2
'Einlesen der Angabe
p = TextBox1.Text
b = 2 * PI / p
'graph Zeichnen
For i = 0 To 2*PI
y1 = Sin(i * b)
y2 = Sin((i+1) * b)
graph.DrawLine(pen, i * scaleX, y1 * scaleY, (i + 1) * scaleX, y2 * scaleX)
Next i
End Sub
Private Sub btnBeenden_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBeenden.Click
Me.Close()
End Sub
End Class