Announcement

Collapse
No announcement yet.

Sinuskurve zeichnen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Sinuskurve zeichnen

    Hallo zusammen,

    ich versuche verzweifelt, eine "ansehnliche" Sinuskurve auf eine Form (z.B. 800 x 600 Pixel) zeichnen zu lassen, aber das sieht eher wie Kindergekritzel aus. Hat jemand eine bessere Lösung:<BR>
    <BR>
    Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)<BR>
    Dim MyPen As New Pen(Color.Black, 1)<BR>
    Dim p(200) As Point<BR>
    Dim i As Integer<BR>
    For i = 0 To 200<BR>
    p(i) = New Point(i * 2, (Math.Sin(i) + 1) * 20)<BR>
    Next<BR>
    e.Graphics.DrawLines(MyPen, p)<BR>
    End Sub<BR>
    <BR>
    Danke im voraus.<BR>
    Lucky Joe

  • #2
    Hallo!

    Erstmal möchte ich Dich darauf hinweisen, das ein Name wie "Lucky Joe" nicht gerade zuträglich ist, um eine rasche oder gar überhaupt eine Antwort zu bekommen! (-><u><a href="http://www.dtcc.edu/cs/rfc1855.html">Netiquette</a></u><-)<br>
    <br>
    Zu Deinem Problem...<br>
    Deine Zeichenroutine ist nicht sehr exakt. Warum sagst Du <font face="courier">i * 2</font> ?!?<pre> Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
    Dim MyPen As New Pen(Color.Black, 1)
    Dim MyPoints() As Point
    Dim nIdx As Integer
    Dim lAmplitude, lFrequenz, lUmlauf As Integer
    </pre><pre> lUmlauf = 1
    lFrequenz = 20
    lAmplitude = 60</pre><pre> ReDim MyPoints((Math.PI * 2) * lFrequenz * lUmlauf)</pre><pre> For nIdx = 0 To ((Math.PI * 2) * lFrequenz * lUmlauf)
    MyPoints(nIdx) = New Point(nIdx + 8, ((Math.Sin(nIdx / lFrequenz) * lAmplitude) + (Me.Height / 2)))
    Next
    e.Graphics.DrawLines(MyPen, MyPoints)
    End Sub</pre>So würde ich es machen.<br>
    <font face="courier">nIdx + 8<font> für den linken Seitenabstand und <font face="courier">+ (Me.Height / 2)</font> für die zentrierung auf der Form - kannst Du aber auch einfach nur <font face="courier">+ 8</font> verwenden [8 ist der Standardabstand]. Ansonsten dürften die Variablennamen selbsterklärend sein.<br>
    <br>
    Gruß Nico Stöckigt<br>
    <br>
    PS: und ließ dir bitte mal den obigen Link mal etwas durch! <br&gt

    Comment

    Working...
    X