AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Hilfe bei Plotter und Umrechnung der Koordinaten

Hilfe bei Plotter und Umrechnung der Koordinaten

Ein Thema von Preddy2005 · begonnen am 3. Feb 2006 · letzter Beitrag vom 5. Feb 2006
 
Preddy2005

Registriert seit: 27. Nov 2005
Ort: Mettmann
38 Beiträge
 
#1

Hilfe bei Plotter und Umrechnung der Koordinaten

  Alt 3. Feb 2006, 19:22
Hallo mal wieder! Ich brauche mal Hilfe bei der Programmierung eines Plotters und der Funktion Sin(x).

Ist eine Schulaufgabe... Die Umsetzung mit Delphi bereit mir nicht die Probleme ... Eher die Theorie dahinter... Und ich habe nichts wirklich brauchbares gefunden in Foren und im Internet ... Vielleicht kann mir hier ja jemand helfen... Und unser Lehrer erklärt leider auch kaum was... Deswegen wende ich mich an euch.

Delphi-Quellcode:

var Anzahl_n : Integer;
    i, j, k, l, m : Integer;
    Schritt : Double;
    Y_Max_Wert : Extended;
    X_Max_Wert : Extended;
    Y_Min_Wert : Extended;
    X_Min_Wert : Extended;
    Y_Max_Min : Extended;
    X_Max_Min : Extended;
    Y_Temp_Max : Extended;
    X_Temp_Max : Extended;
    Y_Temp_Min : Extended;
    X_Temp_Min : Extended;
    Y_Null_Punkt : Extended;
    X_Null_Punkt : Extended;

begin

     Y_Max_Wert := 0;
     Y_Min_Wert := 0;
     X_Max_Wert := 0;
     X_Min_Wert := 0;

     Anzahl_n := StrToInt((edtAnzahln.Text));
     Schritt := StrToFloat(edtSchritt.Text);

       { Schritt 1 : Wertetabelle erstellen für die Berechnung
         X aus den Schritten und Y wird aus Sin(x) errechntet }


     for i:= 0 to Anzahl_n do
      begin

       X_Werte_Array[i+1] := X_Werte_Array[i] + Schritt;
       Y_Werte_Array[i+1] := Sin(X_Werte_Array[i]);

       memAusgabe.Lines.Add('');
       memAusgabe.Lines.Add('Wert von X : ' + FloatToStr(X_Werte_Array[i]));
       memAusgabe.Lines.Add('Sin von X : ' + FloatToStr(Y_Werte_Array[i]));
       memAusgabe.Lines.Add('');

      end;

      // Schritt 2 : Min und Max von Y bestimmen

                // Max Y

       for k:= 0 to Anzahl_n do
        begin

         Y_Temp_Max := Y_Werte_Array[k];
          if (Y_Temp_Max > Y_Max_Wert)
           then Y_Max_Wert := Y_Temp_Max;

        end;

                // Min Y

        for j := 0 to Anzahl_n do
         begin

          Y_Temp_Min := Y_Werte_Array[j];
           if (Y_Temp_Min < Y_Min_Wert)
            then Y_Min_Wert := Y_Temp_Min;

         end;

                    // Max X

           for l := 0 to Anzahl_n do
            begin
             X_Temp_Max := X_Werte_Array[l];
              if (X_Temp_Max > X_Max_Wert)
               then X_Max_Wert := X_Temp_Max;
             end;

                       // Min X

           for m := 0 to Anzahl_n do
            begin
             X_Temp_Min := X_Werte_Array[m];
              if (X_Temp_Min < X_Min_Wert)
               then X_Min_Wert := X_Temp_Min;
             end;

       memAusgabe.Lines.Add('');
       memAusgabe.Lines.Add('************************************************');
       memAusgabe.Lines.Add('************************************************');
       memAusgabe.Lines.Add('Y Max-Wert : ' + FloatToStr(Y_Max_Wert));
       memAusgabe.Lines.Add('************************************************');
       memAusgabe.Lines.Add('************************************************');
       memAusgabe.Lines.Add('Y Min-Wert : ' + FloatToStr(Y_Min_Wert));
       memAusgabe.Lines.Add('************************************************');
       memAusgabe.Lines.Add('************************************************');
       memAusgabe.Lines.Add('X Min-Wert : ' + FloatToStr(X_Min_Wert));
       memAusgabe.Lines.Add('************************************************');
       memAusgabe.Lines.Add('************************************************');
       memAusgabe.Lines.Add('X Max-Wert : ' + FloatToStr(X_Max_Wert));
       memAusgabe.Lines.Add('************************************************');
       memAusgabe.Lines.Add('************************************************');

       // Schritt 3 : Nullpunktverschiebung durch Subtraktion des Min - Wertes

       Y_Null_Punkt := Y_Min_Wert - Y_Min_Wert;
       X_Null_Punkt := X_Min_Wert - X_Min_Wert;

       memAusgabe.Lines.Add('');
       memAusgabe.Lines.Add('Y - Nullpunkt nach Verschiebung: ' + FloatToStr(Y_Null_Punkt));
       memAusgabe.Lines.Add('');
       memAusgabe.Lines.Add('X - Nullpunkt nach Verschiebung: ' + FloatToStr(X_Null_Punkt));
       memAusgabe.Lines.Add('');
       memAusgabe.Lines.Add('************************************************');
       memAusgabe.Lines.Add('************************************************');

       // Schritt 4 : Max - Min berechnen

       X_Max_Min := X_Max_Wert - X_Min_Wert;
       Y_Max_Min := Y_Max_Wert - Y_Min_Wert;
       memAusgabe.Lines.Add('');
       memAusgabe.Lines.Add('X Max/Min Wert: ' + FloatToStr(X_Max_Min));
       memAusgabe.Lines.Add('');
       memAusgabe.Lines.Add('Y Max/Min Wert: ' + FloatToStr(Y_Max_Min));
       memAusgabe.Lines.Add('');
       memAusgabe.Lines.Add('************************************************');
       memAusgabe.Lines.Add('************************************************');

       // Schritt 5 : h (bzw. b) (Max - Min) errechnen

       System_Breite := imSystem.Width;
       System_Hoehe := imSystem.Height;

       // Schritt 6 : h - Y Wert



       // Schritt 7 : Runden

       

end;

1.) Ist dieser Ansatz korrekt?

2.) Die Stichpunkte helfen mir nicht von meinem Lehrer. Kann jemand mal erklären wie ich theoretisch weitermachen muss...
Die Theorie dahinter zu verstehen wäre mir wichtiger als der Rest... Mathe ist zumdem schon ein Weilchen her und deshalb
beherrsche ich das alles auch nicht wirklich gut...

Ich hoffe jemand kann mir weiterhelfen.... Danke im voraus für die Mühe und den Aufwand.
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 08:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz