AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Sinus zeichnen

Ein Thema von Nikolas · begonnen am 13. Dez 2003 · letzter Beitrag vom 13. Dez 2003
Antwort Antwort
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#1

Sinus zeichnen

  Alt 13. Dez 2003, 11:44
HI

Ich will in einem image die Sinusfunktion und Näherungsfunktionen darstellen.
Ich hab für das Koordinaten-System dem User die Möglichkeit gegeben, den Zeichenbereich einzustellen(x-achse von a bis b, y-achse von c bis d).
Jetzt bekomm ich es aber nicht hin, die Funktionen einzuzeichen.
Meine Ansatz ist eine for schleife die ich von 0 bis 1000 (image.width) laufen lasse und dann jeweils ein lineto zum nächsten Wert mache.

Ich kann zu jedem x-wert den sinus bestimmen aber jetzt hake ich bei dem Problem einem Sinus-wert die richtige y-Koordinate zum Zeichnen zu geben.

Wer schonmal so was gebaut hat, könnte mir vielleicht mal einen Ansatz geben. (Bitte keinen Code!!!)

THXbyTOX
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Benutzerbild von Seniman
Seniman

Registriert seit: 15. Sep 2003
Ort: Münster
98 Beiträge
 
#2

Re: Sinus zeichnen

  Alt 13. Dez 2003, 12:40
Hallo Toxman,

Versuch es folgendermaßen:
Du hast a,b,c und d gegeben. Zu jedem Punkt innerhalb dieses rechteckigen Bereichs gehört nun ein Punkt auf dem image. Du brauchst also den Zusammenhang zwischen einem Punkt und dem dazugehöreng Punkt, der gezeichnet wird.
Da das Bild nicht verdreht wird, kann man die x und y-Koordinaten einzelnd betrachten. Für die x-Koordinate gilt:
Ein Punkt mit der x=a wird auf dem Bild ganz links abgebildet, d.h. a wird zu 0. Ein Punkt mit x=b wird ganz nach rechts abgebildet, d.h. b wird zu image.width
Daraus erhält man eine lineare Funktion f(x)=width/(b-a)*x+(a*width)/(a-b)
Genauso erhält man für die y-Koordinate eine Funktion g(x)=height/(d-c)*y+(c*height)/(c-d)
Wenn du nun einen Punkt (x,y) ausgerechnet hast, dann zeichnest du auf dem image an die Stelle (f(x),g(y)) die Linie.
Natürlich musst du darauf achten, dass b>a und c>d gilt, sonst kommt es möglicherweise zu einer Division durch 0 oder das Bild steht auf dem Kopf.

Hoffe, es hilft dir weiter,

Grüße
Seniman
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz