Thema: Delphi TCanvas : Sinuskurve

Einzelnen Beitrag anzeigen

Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#2

Re: TCanvas : Sinuskurve

  Alt 18. Dez 2009, 20:23
Hallo,
Willkommen in der DP

Erstmal: Bitte benutze für Delphi-Code in deinen Beiträgen das [delphi ]-Tag, sonst ist es echt eine Qual, das zu lesen.

So ganz habe ich ehrlich gesagt beim ersten Lesen nicht verstanden, was der Kern deiner Frage ist - ich habe den Verdacht, dass du hier (evtl. unbewusst) mehrere Fragen gleichzeitig stellst. Versuche immer erst, deine Probleme in Teilprobleme zu zerlegen und dann für jede Frage einen eigenen Thread zu erstellen.

So, kommen wir erst mal zur Sache:
Zitat:
Mein Hauptproblem ist, dass die Sinuskurve nur als gestrichelte Linie oder Punkte dargestellt wird. Ok, eine Lösung hätte ich selber : Bogenmaß nutzen, spich Pie statt Grad. Aber wie genau setz ich das ein?
Ich weiß nicht, ob du hier wirklich die Ursache erkannt hast - du färbst für jeden X-Wert genau einen Pixel ein, wodurch du logischerweise Punkte und keine Linien erhältst - mit dem Bogenmaß hat das rein gar nichts zu tun. Am einfachsten löst du das Problem, indem du nicht auf Delphi-Referenz durchsuchenTCanvas.Pixels direkt zugreifst, sondern die Funktionen Delphi-Referenz durchsuchenTCanvas.MoveTo und Delphi-Referenz durchsuchenTCanvas.LineTo benutzt, um jeweils von einem Punkt zum nächsten eine Linie zu zeichnen.

Du wirst dir aber für dein Koordinatensystem eine andere Einheit als Pixel überlegen müssen - sonst hast du schon nach knapp 3 Pixeln eine 360°-Drehung gemacht. Dazu reicht es aber einfach aus, das Funktionsargument (b*x + c) für die Sinusfunktion durch einen konstanten Wert zu teilen - z.B. 10 - und anschließend das Ergebnis der Gesamtberechnung wieder mit diesem Faktor zu multiplizieren.

Noch eine Kleinigkeit: Es heißt Pi, nicht Pie. Ich war zuerst etwas verwirrt, weil Pie auch eine Methode von TCanvas ist, mit der sich "Tortenstücke" zeichnen lassen.
  Mit Zitat antworten Zitat