Schwingungen überlagern

  • VB.NET

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Schwingungen überlagern

    Weiss jemand wie man bei Visual basic 2008 Schwingungen darstellt und überlagert. Bei der Aufgabe soll man zwei werte eingeben, die dann graphisch dargestellt werden und zum schluss sollen 2 Schwingungen Überlagert werden.Wenn mir bei der aufgabe jemand helfen könnte wäre das echt super
    Hier ist meine Aufgabe. Macht mal. :thumbdown:
    Also:
    Picturebox, Breite und Höhe zum Skalieren auslesen,
    Achsen malen
    Sinüsse berechnen, zeichnen.
    In Deinem nächsten Post sende bitte etwas eigenen Code mit. :thumbsup:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    habe schon etwas rumprobiert :Public Class Form1

    Private Sub TextBox27_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox27.TextChanged

    End Sub

    Private Sub PictureBox1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
    Dim a As String = "f(t)"
    Dim i As String = "t/s"
    Dim yy As Integer = 400
    Dim ft As Font = Me.Font
    Dim g As Graphics = e.Graphics
    g.DrawLine(Pens.Cyan, 200, yy, 200, 0)
    g.DrawLine(Pens.Cyan, 0, yy - 200, 400, yy - 200)
    For var As Integer = 0 To 400 Step 10
    g.DrawString(i, ft, Brushes.Cyan, 380, yy - 190)
    g.DrawLine(Pens.Cyan, var, yy - 202, var, 202)
    g.DrawLine(Pens.Cyan, 202, yy - var, 198, yy - var)
    g.DrawString(a, ft, Brushes.Cyan, 180, yy - 395)
    Next
    End Sub



    Private Sub TabPage4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabPage4.Click

    End Sub


    Private Sub PictureBox3_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox3.Paint
    Dim a As String = "f(t)"
    Dim i As String = "t/s"
    Dim yy As Integer = 400
    Dim ft As Font = Me.Font
    Dim g As Graphics = e.Graphics
    g.DrawLine(Pens.Cyan, 200, yy, 200, 0)
    g.DrawLine(Pens.Cyan, 0, yy - 200, 400, yy - 200)
    For var As Integer = 0 To 400 Step 10
    g.DrawString(i, ft, Brushes.Cyan, 380, yy - 190)
    g.DrawLine(Pens.Cyan, var, yy - 202, var, 202)
    g.DrawLine(Pens.Cyan, 202, yy - var, 198, yy - var)
    g.DrawString(a, ft, Brushes.Cyan, 180, yy - 395)
    Next
    End Sub

    Private Sub PictureBox2_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox2.Paint
    Dim a As String = "f(t)"
    Dim i As String = "t/s"
    Dim yy As Integer = 400
    Dim ft As Font = Me.Font
    Dim g As Graphics = e.Graphics
    g.DrawLine(Pens.Cyan, 200, yy, 200, 0)
    g.DrawLine(Pens.Cyan, 0, yy - 200, 400, yy - 200)
    For var As Integer = 0 To 400 Step 10
    g.DrawString(i, ft, Brushes.Cyan, 380, yy - 190)
    g.DrawLine(Pens.Cyan, var, yy - 202, var, 202)
    g.DrawLine(Pens.Cyan, 202, yy - var, 198, yy - var)
    g.DrawString(a, ft, Brushes.Cyan, 180, yy - 395)
    Next
    End Sub

    Private Sub TabPage1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabPage1.Click

    End Sub

    Private Sub TextBox6_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox6.TextChanged

    End Sub


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    End Sub
    End Class :( Weiss halt nicht wie ich jetzt die Schwingungen darstellen soll oder mit welcher formel man so was macht.
    Mir sind die Anforderungen noch nicht klar: Soll dann in der Anzeige etwas herumwackeln, also tatsächlich schwingen, oder möchtest du ein LinienChart?
    Oder ein Laufband-LinienChart?

    Für Code gibts hier übrigens den "VB" - Button. Aber nur, wenn man nicht die Schnellantwort benutzt, sondern auf "Antworten" klickst.
    Fang zunächst so an:
    Füge den Button1 hinzu und ergänze die Sub PictureBox1_Paint()
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private myPoints As New List(Of Point) ' Klassen-Variable
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. poly.Clear()
    4. Dim w As Integer = PictureBox1.Width
    5. Dim scaleX As Double = 2.0 * Math.PI / w
    6. Dim scaleY As Double = PictureBox1.Height / 2 - 1
    7. Dim y As Double
    8. For i As Integer = 0 To w - 1
    9. y = (Math.Sin(i * scaleX) + 1) * scaleY
    10. myPoints.Add(New Point(i, CInt(y)))
    11. Next
    12. PictureBox1.Invalidate()
    13. PictureBox1.Update()
    14. End Sub
    15. Private Sub PictureBox1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
    16. ' alles bleibt stehen,
    17. ' das hier ist neu:
    18. If (myPoints.Count > 0) Then
    19. g.DrawLines(Pens.Black, myPoints.ToArray)
    20. End If
    21. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich möchte die schwingung als bild in einem Koordinatensystem darstellen .
    ohne das es sich bewegt. es sollen auch nur sinus und kosinusschwingungen dargestellt werden.
    oder ist es denn aufwendig weitere schwingungen darzustellen ??? da es ja unendlich viele gibt. ich hätte jetzt erst sinus und kosinis deklariert und dann versucht
    mit einer formel weiter zu kommen. ?(
    Nimm mein Beispiel und Du hast einen schönen Sinus.
    Wenn Du die Mathematik beherrschst, ist der Rest ein Klax.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Bis jetzt bin ich so weit habe nun probleme die schwingungen darzustellen und wie ich generell nun weiter mache . finde es super das sich so viele melden :thumbsup: :!: ich habe das alles ma als bild angehangen
    Bilder
    • Bild1.png

      142,18 kB, 742×502, 150 mal angesehen
    • Bild2.png

      88,35 kB, 738×497, 142 mal angesehen
    • Bild3.png

      171,87 kB, 742×502, 121 mal angesehen
    • Bild4.png

      101,56 kB, 744×502, 118 mal angesehen
    • Bild5.png

      176,89 kB, 740×502, 148 mal angesehen
    Hinweis:
    Die Abfrage ob
    Sinus oder Cosinus
    UND
    Sinus-Phase oder Cosinus-Phase
    ist ja wohl zuviel, da cos(x) = sin(x + pi/2) ist, also lediglich ein Phasenoffset von pi/2 vorliegt.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    Nimm mein Beispiel und Du hast einen schönen Sinus.
    Wenn Du die Mathematik beherrschst, ist der Rest ein Klax.

    Ich erwarte, dass ein solches Bild bei Dir zu sehen ist. :thumbsup:
    Bilder
    • Sinus.jpg

      3,6 kB, 338×124, 108 mal angesehen
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hast Du mein Codebeispiel in Post 5 nicht kapiert? X(
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Dann poste doch mal die Formeln, nach denen Du Schwingungen überlagern willst.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!