AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Programm zum zeichnen von 2 Graphen
Thema durchsuchen
Ansicht
Themen-Optionen

Programm zum zeichnen von 2 Graphen

Ein Thema von taker875 · begonnen am 16. Jan 2009 · letzter Beitrag vom 16. Jan 2009
Antwort Antwort
taker875
Registriert seit: 2. Okt 2008
Moin,

habe da nen Problem.
das programm zeichnet beide graphen, aber verbindet diese auch, sprich füllt die fläche zwischen diesen aus? Oo wenn ich die procedure des einen graphen raus nehme zeichnet er auch richtig füllt keine fläche aus.

Das zeichnen des 1. Graphen:
Form1.Bild.Canvas.LineTo(xb,yb); Das zeichnen des 2. Graphen:
Form1.Bild.Canvas.LineTo(xb2,yb2); Warum kommt er jetzt daraus diese beiden Graphen zu verbinden? Ich verstehe es einfach nicht.

Bitte helft mir
Danke
 
taker875
 
#2
  Alt 16. Jan 2009, 21:30
um es nochmal genauer zu machen:

Zeichnen des 1. Graphen:
Delphi-Quellcode:
procedure zeichnenGraph;
var defi,defivorher : boolean;
    xvorher,yvorher : double;
begin
xvorher := (xb-x0)/(xEins-x0);
yvorher:=funktion(x,defivorher);
x := (xb-x0)/(xEins-x0);
y :=Funktion(x,defi);
yB := Round(y*(yEins-y0)+y0);
if y <> 0 then
if xB = 0
 then Form1.Bild.Canvas.MoveTo(xb,yb)
 else
  begin
  x := ((xb-1)-x0)/(xEins-x0);
  if defi and not ((y>10*index) or (y<-10*index) ) then
    begin
    Form1.Bild.Canvas.LineTo(xb,yb);
    end
   else
    begin
    xb := xb+1;
    x := (xb-x0)/(xEins-x0);
    y :=Funktion(x,defi);
    yB := Round(y*(yEins-y0)+y0);
    Form1.Bild.Canvas.MoveTo(xb,yb)
    end;
  end;
end;
Zeichnen des 2. Graphen:
Delphi-Quellcode:
procedure zeichnenGraph2;
var defi2 : boolean;
begin
x2 := (xb2-x0)/(xEins-x0);
y2 :=Funktion2(x2,defi2);
yB2 := Round(y2*(yEins-y0)+y0);
if y2 <> 0 then
if xB2 = 0
 then Form1.Bild.Canvas.MoveTo(xb2,yb2)
 else
  begin
  x2 := ((xb2-1)-x0)/(xEins-x0);
  if defi2 and not ((y2>10*index) or (y2<-10*index) ) then
    begin
    Form1.Bild.Canvas.LineTo(xb2,yb2);
    end
   else
    begin
    xb2 := xb2+1;
    x2 := (xb2-x0)/(xEins-x0);
    y2 :=Funktion(x2,defi2);
    yB2 := Round(y2*(yEins-y0)+y0);
    Form1.Bild.Canvas.MoveTo(xb,yb);

    end;
  end;
end;

Ich versteh einfach nicht, warum er die beiden verbindet

Edit:
Ok habe mir LineTo nochmal genau angeschaut und das Problem ist, dass er ja immer von der alten PenPos. eine Linie zieht und da ich 2 Graphen gleichzeitig zeichne auf einem image geht das nicht. Ok das habe ich. Wenn man es mit 2 verschiedenen Bildern versucht auf denen man zeichnet, dann geht das zwar flackert aber sehr, mit DoubleBuffered ist das auch nicht zu lösen, da dann der graph auf dem 2. bild , sprich der 2. graph nicht mehr sichtbar ist.

wenn mir da irgendwer nen tipp geben könnte wäre das echt super
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#3
  Alt 16. Jan 2009, 21:39
Initialisiere xB und xB2 mal vor jedem Zeichnen mit 0.
  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:10 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