AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language quadratische funktion umnrechnen für Koordinatensystem
Thema durchsuchen
Ansicht
Themen-Optionen

quadratische funktion umnrechnen für Koordinatensystem

Ein Thema von Blubbel · begonnen am 7. Okt 2011 · letzter Beitrag vom 14. Okt 2011
Antwort Antwort
Blubbel

Registriert seit: 6. Okt 2011
125 Beiträge
 
Delphi 2010 Professional
 
#1

quadratische funktion umnrechnen für Koordinatensystem

  Alt 7. Okt 2011, 09:20
Delphi-Version: 5
Moinsen
Ich habe hier ein kleines Problemchen, und zwar will ich in einem Image feld , das eine canvas ist, in einen Graphen eine Parabel zeichnen. Ich weiß nicht genau wie ich es Rechnen muss, um meine funktion anzupassen....

Habt ihr vielleicht einen Pseudocode für mich, mit kommentaren damit ichs besser versteh?

Danke euch jetzt schon.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: quadratische funktion umnrechnen für Koordinatensystem

  Alt 7. Okt 2011, 09:53
in einem Image feld , das eine canvas ist, in einen Graphen eine Parabel zeichnen.
wohin denn jetzt?

Image oder Canvas?
BTW: Jedes sichtbare Element hat eine Canvas (Leinwand), sonst könnte es nicht sichtbar werden.
Eine Image-Komponente malt das ihr zugewiesene Bild auf ihren Canvas

Oder vielleicht besser doch eine PaintBox (die scheint mir für dein Vorhaben wohl besser geeignet)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Blubbel

Registriert seit: 6. Okt 2011
125 Beiträge
 
Delphi 2010 Professional
 
#3

AW: quadratische funktion umnrechnen für Koordinatensystem

  Alt 7. Okt 2011, 10:00
Also mit einer Paintbox hab ichs vorher versucht... hat nicht so hingehauen wie ich es gerne haben wollte. deswegen habe ich ein image genommen.

Ich zeig dir einfach mal den code der Oberfläche.

Brauche eben noch eine einfache Rechenmethode um die funktion passend errechnen zu lassen damit der graph auch richtig gezeichnet wird. Nur einen Pseudocode mit kommentaren damit ichs dann adarauf aufbauen kann... also nur zum gucken wie man sowas macht. Keine angst ich werds nicht 1 zu 1 übernehmen
Also hier erstmal der Code von der Oberfläche:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  i,j,k:Integer;
begin
  with Image1.Canvas do
  begin //X-Achse
    MoveTo(1125,450); //Graph
    LineTo(20,450);

    for i:= -5 to 16 do
    begin
      Image1.Canvas.TextOut(300+50*i,455,IntToStr(i)); //Beschriftung
      MoveTo(300+50*i,445); //Striche von Beschriftung
      LineTo(300+50*i,455);
      begin //Y-Achse
        MoveTo(300,20); //Graph
        LineTo(300,660);

        for j := -8 to -1 do
        begin
          Image1.Canvas.TextOut(305,450+50*j,IntToStr(-j)); //Beschriftung
          MoveTo(295,450+50*j); //Striche von Beschriftung
          LineTo(305,450+50*j);

          for k := 1 to 4 do
          begin
            Image1.Canvas.TextOut(305,450+50*k,IntToStr(-k)); //Beschriftung
            MoveTo(295,450+50*k); //Striche von Beschriftung
            LineTo(305,450+50*k);
          end;
        end;
      end;
    end;
  end;
end;
Die habe ich auch nur durch ein bisschen angucken einiger Codeschnipsel hinbekommen.

Also das zeichnen soll übrigens in einem Button sein wobei auch der wert von X² in einem Edith eingegeben wird... also vielleicht werde ich das später noch erweitern

Geändert von Blubbel ( 7. Okt 2011 um 10:04 Uhr)
  Mit Zitat antworten Zitat
Noobmaster

Registriert seit: 18. Jul 2010
114 Beiträge
 
FreePascal / Lazarus
 
#4

AW: quadratische funktion umnrechnen für Koordinatensystem

  Alt 7. Okt 2011, 10:39
Setze dort Punkte, wo deine Parabel entlangläuft:

Delphi-Quellcode:
Canvas.Moveto(Parabel(LinkeBegrenzung));
for x := LinkeBegrenzung_X to RechteBegrenzung_X do
begin
   Canvas.LineTo(Parabel(x));
   Canvas.MoveTo(Parabel(x));
end;
;

Deine Parabelfunktion sollte dann logischerweise so implementiert werden, dass die Parabel in der Mitte der Canvas ihren Scheitelpunkt hat:
y = a(x-xs)+ys
xs muss dann die Hälfte der Breite deiner Canvas sein.

Ich hoffe, ich habe jetzt auf die Schnelle keinen groben Denkfehler drin. Aber vom Prinzip her müsste es so funktionieren...

Geändert von Noobmaster ( 7. Okt 2011 um 10:41 Uhr)
  Mit Zitat antworten Zitat
Blubbel

Registriert seit: 6. Okt 2011
125 Beiträge
 
Delphi 2010 Professional
 
#5

AW: quadratische funktion umnrechnen für Koordinatensystem

  Alt 7. Okt 2011, 10:45
ok, ich werds mal versuchen.

Danke dir!
  Mit Zitat antworten Zitat
Blubbel

Registriert seit: 6. Okt 2011
125 Beiträge
 
Delphi 2010 Professional
 
#6

AW: quadratische funktion umnrechnen für Koordinatensystem

  Alt 14. Okt 2011, 14:19
Hi Leute,
ich nehme wieder meinen alten thread auf weil ich das gleiche problem wieder habe...
Keine angst! wie haben eine erweiterungsaufgabe bekomm. Das Koordinatensystem soll sich, wenn der Anwander das -fenster vergrößert, auch vergrößern. Alles schön und gut! nur weiß ich jetzt nicht wie ich Zeichnen kann. Habe es soweit, dass es zeichnet aber nicht so wie es sollte^^

Die Funktionen

Delphi-Quellcode:
function GetCenter(AValue: TRect): TPoint;
  begin
    Result.X := (GetWidth(AValue) div 2);
    Result.Y := (GetHeight(AValue) div 2);
  end;
function GetWidth(AValue: TRect): Integer;
  begin
    Result:= (AValue.Right - AValue.Left);
  end;

  function GetHeight(AValue: TRect): Integer;
  begin
    Result:= (AValue.Bottom - AValue.Top);
  end;
Und die bisherige Lösung
Delphi-Quellcode:
procedure TForm1.btn_ZeichneClick(Sender: TObject);
var
  i,j, k:Integer;
  x,y: Real;
begin
  a:= StrToFloat(edtEingabe.Text);
  b:= StrToFloat(edt_Bx.Text);
  c:= StrToFloat(edt_C.Text);
  i:=0;

  for i := 0 to GetWidth(PaintBox1.Canvas.ClipRect) do
  begin
    x:=(i-GetHeight(PaintBox1.Canvas.ClipRect)) / 50;
    y:=a*sqr(x)+b*x+c;
    j:=round(GetHeight(PaintBox1.Canvas.ClipRect) - y * 50);
    PaintBox1.Canvas.Pixels[i,j]:=clblue; //zeichnen
  end;
end;
Danke schon mal
  Mit Zitat antworten Zitat
Blubbel

Registriert seit: 6. Okt 2011
125 Beiträge
 
Delphi 2010 Professional
 
#7

AW: quadratische funktion umnrechnen für Koordinatensystem

  Alt 14. Okt 2011, 14:49
Danke, hat sich erledigt!
  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 23:49 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