Autor Beitrag
Soapy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 88

Windows 2000
Delphi 2005 Personal
BeitragVerfasst: Do 27.12.07 23:18 
Hallo
ich habe ein Programm geschrieben, das Lineare Funktionen darstellen kann.
Ich habe in einem TImage ein Koordinatensystem erstellt, in dem diese linearen Funktionen angezeigt werden.

Es läuft bis hier hin alles prima...
Es zeichnet die Funktion richtig in das Koordinatensysem...

jetzt kommt mein Problem...

Ich möchte, dass der Standartzustand (Den Zustand den ich in FormCreate geschrieben habe) wieder hergestellt wird.
Das möchte ich mit dem Löschen-Button und der zugehörigen Löschen-Prozedur bewerkstelligen.
Man beachte, dass das Koordinatensystem in einem TImage ist.

Wie müsste nun meine Löschen-Prozedur aussehen?


So sieht es aus:


ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type
  TForm2 = class(TForm)
    Koordinatensystem: TImage;
    Loeschen: TButton;
    Zeichnen: TButton;
    fvonxgleich: TLabel;
    Steigung: TEdit;
    malxplus: TLabel;
    yachsenabschnitt: TEdit;
    Label1: TLabel;
    procedure ZeichnenClick(Sender: TObject);
    procedure LoeschenClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;
  x,y : Integer;
  varSteigung, varyachsenabschnitt : Real;
  a,b : Real;
  Gleitkommasteigung: Real;

implementation

{$R *.dfm}

procedure TForm2.FormCreate(Sender: TObject);
begin
// Mittelpunkt
x := Koordinatensystem.clientwidth div 2;
y := 350;
// Achsen
Koordinatensystem.Canvas.MoveTo(x,y);
Koordinatensystem.Canvas.LineTo(450900);
Koordinatensystem.Canvas.MoveTo(x,y);
Koordinatensystem.Canvas.LineTo(4500);
Koordinatensystem.Canvas.MoveTo(x,y);
Koordinatensystem.Canvas.LineTo(0350);
Koordinatensystem.Canvas.MoveTo(x,y);
Koordinatensystem.Canvas.LineTo(900350);


{unendlich viele Punkte welche unwichtig sind}


end;

procedure TForm2.LoeschenClick(Sender: TObject);
begin

end;

procedure TForm2.ZeichnenClick(Sender: TObject);
begin
Koordinatensystem.Canvas.MoveTo(x,y);
varSteigung := StrToFloat(Steigung.Text);
varyachsenabschnitt := StrToFloat(yachsenabschnitt.Text);
a := x + (varSteigung*400);


b := y - (varyachsenabschnitt*40);


Koordinatensystem.Canvas.MoveTo(x, Trunc(b));
Koordinatensystem.Canvas.LineTo(Trunc(a), Trunc(b)-400);


//Label Steigung
Gleitkommasteigung := StrToFloat(Steigung.Text);
Gleitkommasteigung := 1/Gleitkommasteigung;
Label1.Caption := FloatToStr(Gleitkommasteigung);
end;

end.



Ich hoffe ihr könnt mir weiterhelfen!


Vielen Dank


Zuletzt bearbeitet von Soapy am Do 27.12.07 23:23, insgesamt 1-mal bearbeitet
DrRzf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 260

Win XP Prof
D7 Enterprise
BeitragVerfasst: Do 27.12.07 23:23 
Lager deine Zeichenvorgänge die in FormCreate stecken in eine eigene procedure/function aus und rufe diese in FormCreate und in der Löschprocedure auf.
Und vergiss nicht das Image vor dem Neuzeichnen zu Clearen.

_________________
rein statistisch gesehen darf man keiner statistik trauen die man nicht selbst gefälscht hat.


Zuletzt bearbeitet von DrRzf am Do 27.12.07 23:26, insgesamt 1-mal bearbeitet
Soapy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 88

Windows 2000
Delphi 2005 Personal
BeitragVerfasst: Do 27.12.07 23:25 
Ich versuchs mal! Danke!
DrRzf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 260

Win XP Prof
D7 Enterprise
BeitragVerfasst: Do 27.12.07 23:29 
Zeichnest du jeden Punkt in dem koordinatensystem einzeln ?

_________________
rein statistisch gesehen darf man keiner statistik trauen die man nicht selbst gefälscht hat.
Soapy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 88

Windows 2000
Delphi 2005 Personal
BeitragVerfasst: Do 27.12.07 23:32 
Ja bin halt Anfänger!
Soapy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 88

Windows 2000
Delphi 2005 Personal
BeitragVerfasst: Do 27.12.07 23:56 
Mist des geht nicht!

Aber danke für deinen Vorschlag!


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TLineareFunktionen.LoeschenClick(Sender: TObject);
begin
LineareFunktionen.Standart(Sender);
end;

procedure TLineareFunktionen.FormCreate(Sender: TObject);
begin
LineareFunktionen.Standart(Sender);
end;



So sieht es aus aber das funktioniert auch nicht!


Ich habe jetzt mal die Unit hochgeladen, damit ihr sie euch selber mal anschauen könnt!
Bethsoftfan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44

Win XP, Linux OpenSuSE 10.3 mit Compiz Fusion :cool:
Delphi 2007 Prof. Delphi 5
BeitragVerfasst: Fr 28.12.07 00:46 
Hallo :welcome:

also zwecks übersicht erstmal bissl aufräumen!

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
...
Koordinatensystem.Canvas.Pixels[10,30..710] := clblack;
//  Gitternetzpunkte x=50
Koordinatensystem.Canvas.Pixels[50,30..750] := clblack;
//Gitternetzpunkte x=50
Koordinatensystem.Canvas.Pixels[90,30..710] := clblack;
//Gitternetzpunkte x=130
Koordinatensystem.Canvas.Pixels[130,30..710] := clblack;
//Gitternetzpunkte x=170
Koordinatensystem.Canvas.Pixels[170,30..710] := clblack;
//Gitternetzpunkte x=210
Koordinatensystem.Canvas.Pixels[210,30..710] := clblack;
//Gitternetzpunkte x=250
Koordinatensystem.Canvas.Pixels[250,30..710] := clblack;
//Gitternetzpunkte x=290
Koordinatensystem.Canvas.Pixels[290,30..710] := clblack;
//Gitternetzpunkte x=330
Koordinatensystem.Canvas.Pixels[330,30..710] := clblack;
//Gitternetzpunkte x=370
Koordinatensystem.Canvas.Pixels[370,30..710] := clblack;
...


Und zur Frage: Ein einfacher Einfall :think:
ausblenden Delphi-Quelltext
1:
2:
3:
Begin
Koordinatensystem.Canvas.Pixels[x, y].Color.Free;
End;

In dem ist sicherlich ein Fehler drin!^^ :x
Und erschlagt mich, wenn es falsch ist! :autsch:

Oder :
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
Koordinatensystem.Canvas.MoveTo(x,y);
Koordinatensystem.Canvas.LineTo(450900);
Koordinatensystem.Canvas.MoveTo(x,y);
Koordinatensystem.Canvas.LineTo(4500);
Koordinatensystem.Canvas.MoveTo(x,y);
Koordinatensystem.Canvas.LineTo(0350);
Koordinatensystem.Canvas.MoveTo(x,y);
Koordinatensystem.Canvas.LineTo(900350);
//  Gitternetzpunkte x=10
Koordinatensystem.Canvas.Pixels[10,30] := clblack;
Koordinatensystem.Canvas.Pixels[10,70] := clblack;
Koordinatensystem.Canvas.Pixels[10,110] := clblack;
Koordinatensystem.Canvas.Pixels[10,150] := clblack;
Koordinatensystem.Canvas.Pixels[10,190] := clblack;
Koordinatensystem.Canvas.Pixels[10,230] := clblack;
Koordinatensystem.Canvas.Pixels[10,270] := clblack;
Koordinatensystem.Canvas.Pixels[10,310] := clblack;
Koordinatensystem.Canvas.Pixels[10,390] := clblack;
Koordinatensystem.Canvas.Pixels[10,430] := clblack;
Koordinatensystem.Canvas.Pixels[10,470] := clblack;
Koordinatensystem.Canvas.Pixels[10,510] := clblack;
Koordinatensystem.Canvas.Pixels[10,550] := clblack;
Koordinatensystem.Canvas.Pixels[10,590] := clblack;
Koordinatensystem.Canvas.Pixels[10,630] := clblack;
Koordinatensystem.Canvas.Pixels[10,670] := clblack;
Koordinatensystem.Canvas.Pixels[10,710] := clblack;
...


Oder einfach :
ausblenden Delphi-Quelltext
1:
Form2.Create;					


bin halt ein noob, aber versuche zu helfen ;)
ausblenden Delphi-Quelltext
1:
2:
[DCC Fehler] Bethsoftfan.pas(1): E2029 'Brauchbare Antwort' erwartet, aber 'Müll' gefunden!
[DCC Fataler Fehler] Bethsoftfan.pas konnte nicht verwendet werden!


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
IF Bethsoft.Wissen = 0 THEN

FROM Bethsoftfan:= 0 TO Bethsoftfan:=1 DO  
//bin selbst ein n 00 b;
Bethsoftfan.überlebenschancenimforum := 0;
Bethsoftfan.Beliebtheit:=Bethsoftfan.Beliebtheit - 100;
Bethsoftfan.Wissen     := Bethsoftfan.Wissen - 1;
END

ELSE
Bethsoftfan.überlebenschancenimforum := 100;
Bethsoftfan.Beliebtheit := Bethsoftfan.Beliebtheit + 100;
Bethsoftfan.Wissen := Bethsoftfan.Wissen + 1; :think:



So, mein Wort zum Freitag! :angel:
DrRzf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 260

Win XP Prof
D7 Enterprise
BeitragVerfasst: Fr 28.12.07 01:09 
Ich dachte da etwa das du das auf diese art machst.
ander möglichkeit wäre das Bitmap in einer Temporären Bitmap zwischenzuspeichern und es dann bei löschen wieder drüberzuzeichnen.

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
unit Unit2;  

 
interface  

 
uses  
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  
  Dialogs, ExtCtrls, StdCtrls;  

 
type  
  TForm2 = class(TForm)  
    Koordinatensystem: TImage;  
    Loeschen: TButton;  
    Zeichnen: TButton;  
    fvonxgleich: TLabel;  
    Steigung: TEdit;  
    malxplus: TLabel;  
    yachsenabschnitt: TEdit;  
    Label1: TLabel;  
    procedure ZeichnenClick(Sender: TObject);  
    procedure LoeschenClick(Sender: TObject);  
    procedure FormCreate(Sender: TObject);  
  private  
    { Private-Deklarationen }  
  public  
    { Public-Deklarationen }
    procedure DrawRaster; //Hier die procedure deklarieren  
  end;  

 
var  
  Form2: TForm2;  
  x,y : Integer;  
  varSteigung, varyachsenabschnitt : Real;  
  a,b : Real;  
  Gleitkommasteigung: Real;  

 
implementation  

 
{$R *.dfm}  

procedure TForm2.DrawRaster; //procedure die das Raster neu zeichnet 
begin  
//zuerst hier noch die farben für den hintergrund setzen. 
Koordinatensystem.Canvas.Draw.Rectangle(0,0,Koordinatensystem.width,Koordinatensystem.height) //zuerst löschen
// Mittelpunkt  
x := Koordinatensystem.clientwidth div 2;  
y := 350;  
// Achsen  
//hier wieder auf zeichenfareb setzen
Koordinatensystem.Canvas.MoveTo(x,y);  
Koordinatensystem.Canvas.LineTo(450900);  
Koordinatensystem.Canvas.MoveTo(x,y);  
Koordinatensystem.Canvas.LineTo(4500);  
Koordinatensystem.Canvas.MoveTo(x,y);  
Koordinatensystem.Canvas.LineTo(0350);  
Koordinatensystem.Canvas.MoveTo(x,y);  
Koordinatensystem.Canvas.LineTo(900350);  
{unendlich viele Punkte welche unwichtig sind}
//deine unendlichen punkte villeicht mit ner schleife ?  
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
  DrawRaster;
end;

procedure TForm2.LoeschenClick(Sender: TObject);  
begin  
  DrawRaster;
end;  

 
procedure TForm2.ZeichnenClick(Sender: TObject);  
begin  
Koordinatensystem.Canvas.MoveTo(x,y);  
varSteigung := StrToFloat(Steigung.Text);  
varyachsenabschnitt := StrToFloat(yachsenabschnitt.Text);  
a := x + (varSteigung*400);  
b := y - (varyachsenabschnitt*40);  
Koordinatensystem.Canvas.MoveTo(x, Trunc(b));  
Koordinatensystem.Canvas.LineTo(Trunc(a), Trunc(b)-400);  
//Label Steigung  
Gleitkommasteigung := StrToFloat(Steigung.Text);  
Gleitkommasteigung := 1/Gleitkommasteigung;  
Label1.Caption := FloatToStr(Gleitkommasteigung);  
end;  

end.


hier deine pünktchen...

ausblenden Delphi-Quelltext
1:
2:
3:
for i := 0 to 16 do
  for j := 0 to 12 do //hier natürlich deine anzahl an punkten
    Koordinatensystem.Canvas.Pixels[10 + j * 40,30 + i * 40] := clblack;

_________________
rein statistisch gesehen darf man keiner statistik trauen die man nicht selbst gefälscht hat.
Bethsoftfan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44

Win XP, Linux OpenSuSE 10.3 mit Compiz Fusion :cool:
Delphi 2007 Prof. Delphi 5
BeitragVerfasst: Fr 28.12.07 01:55 
So also um eine Schleife zu schreiben müsste ich erstmal wissen, warum du das gemacht hast?

ausblenden Delphi-Quelltext
1:
Koordinatensystem.Canvas.Pixels[50,750] := clblack;					

Bei den anderen geht das nur von [x, 710] warum also so einen Ausbrecher?

So die Schleife wäre dann :
ausblenden Delphi-Quelltext
1:
2:
3:
4:
Begin
While Not Koordinatensystem.Canvas.Pixels[890,710do
Koordinatensystem.Canvas.Pixels[10..89030..710] := clblack;
End;


Oder auch :
ausblenden Delphi-Quelltext
1:
2:
3:
...
Koordinatensystem.Canvas.Pixels[10..89030..710] := clblack;
...


Ich habe mal mein erstes Project (noch mit Delphi 5) herrausgekramt und es war vom 6.2.2006, also ne Ecke her und ich bin nicht viel besser geworden :)

Manchmal sollte man mir Delphi wegnehmen! :D

Oder auch :

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
From x:=10 to 890 do
Koordinatensystem.Canvas.Pixels[10..890] := clblack;
...
From y:=30 to 710 do
Koordinatensystem.Canvas.Pixels[30..710] := clblack;


So das wars, oh schon Freitag (weil edit, wird aber nicht angezeigt!)! :shock:
DrRzf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 260

Win XP Prof
D7 Enterprise
BeitragVerfasst: Fr 28.12.07 05:13 
die schleife macht dir aus deinen 150 ? punkten und quelltextzeilen gerade mal 3 zeilen code.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
Koordinatensystem.Canvas.Pixels[10,30] := clblack;  
Koordinatensystem.Canvas.Pixels[10,70] := clblack;  
Koordinatensystem.Canvas.Pixels[10,110] := clblack;  
...
...
...



was soll das werden ?
akzeptiert das überhaupt der compiler ?
ausblenden Delphi-Quelltext
1:
Koordinatensystem.Canvas.Pixels[10..89030..710] := clblack;					



ne Frage von mir
Bethsoftfan = Soapy ?

_________________
rein statistisch gesehen darf man keiner statistik trauen die man nicht selbst gefälscht hat.
Soapy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 88

Windows 2000
Delphi 2005 Personal
BeitragVerfasst: Fr 28.12.07 10:51 
Ich habe jetzt wieder ein bisschen dran rumgebastelt und siehe da es geht!
Ich habe es jetzt so gelöst:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TLineareFunktionen.LoeschenClick(Sender: TObject);
begin
//Koordinatensystem + gezeichnete Linien löschen
Koordinatensystem.Canvas.Brush.Color:=clWhite;
Koordinatensystem.Canvas.FillRect(Rect(0,0,Koordinatensystem.Width,Koordinatensystem.Height));
//Koordinatensystem ohne gezeichnete Linie wieder hergestellt
LineareFunktionen.Standart(Sender);
end;



Das mit den Punkten werde ich noch mal überarbeiten!
Mir hat das danze Punktesystem auch nicht gefallen!
Vielen Dank!
Soapy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 88

Windows 2000
Delphi 2005 Personal
BeitragVerfasst: Fr 28.12.07 11:10 
Noch eine Frage...
Wenn die gezeichnete Linie nicht auf der y-Achse aufhören soll, sondern auch noch in den negativen Bereich gehen soll, wie mach ich dass?
Ich habs schon mit einfachem negieren von den Punkten im positiven Bereich versucht, das funktioniert aber nicht!


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
Koordinatensystem.Canvas.MoveTo(x,y);
varSteigung := StrToFloat(Steigung.Text);
varyachsenabschnitt := StrToFloat(yachsenabschnitt.Text);
a := x + (varSteigung*400);
aminus := -(x + (varSteigung*(400)));
b := y - (varyachsenabschnitt*40);
bminus := - (y - (varyachsenabschnitt*40));


Koordinatensystem.Canvas.MoveTo(x, Trunc(b));
Koordinatensystem.Canvas.LineTo(Trunc(a), Trunc(b)-400);
Koordinatensystem.Canvas.MoveTo(x, Trunc(b));
Koordinatensystem.Canvas.LineTo(Trunc(aminus), Trunc(bminus)+400);


Ich weiß dass ich nerve (':cry:')...
Aber ihr habt mir schon so viel geholfen, dass ich das einfach auch noch fragen muss!
Bethsoftfan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44

Win XP, Linux OpenSuSE 10.3 mit Compiz Fusion :cool:
Delphi 2007 Prof. Delphi 5
BeitragVerfasst: Fr 28.12.07 12:15 
user profile iconDrRzf hat folgendes geschrieben:
die schleife macht dir aus deinen 150 ? punkten und quelltextzeilen gerade mal 3 zeilen code.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
Koordinatensystem.Canvas.Pixels[10,30] := clblack;  
Koordinatensystem.Canvas.Pixels[10,70] := clblack;  
Koordinatensystem.Canvas.Pixels[10,110] := clblack;  
...
...
...



was soll das werden ?
akzeptiert das überhaupt der compiler ?
ausblenden Delphi-Quelltext
1:
Koordinatensystem.Canvas.Pixels[10..89030..710] := clblack;					



ne Frage von mir
Bethsoftfan = Soapy ?


[ironie]naja, bei deiner Gleichung hättest du den Compiler geschrottet :mahn: [/ironie]

nein im ernst man hätte es anderst regeln können, bei mir würde er alle Pixel schwarz anmalen, weil ich nicht angegeben haben, in
welchen abständen ;)

so wär es richtiger :
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
While not Koordinatensystem.Canvas.Pixels[10..89030] = clblack; do
Koordinatensystem.Canvas.Pixels[1030];
...//meinetwegen auch alle Pixel einzeln.. :)
...........
While not Koordinatensystem.Canvas.Pixels[10..89070] = clblack do
Koordinatensystem.Canvas.Pixels[1070];
...//wieder alle einzeln
.............//und so weiter



Aber zur Frage :
ausblenden Delphi-Quelltext
1:
aminus := -(x + (varSteigung*(400)));					

vielleicht ein minus vor 400? :nixweiss:
Soapy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 88

Windows 2000
Delphi 2005 Personal
BeitragVerfasst: Fr 28.12.07 12:33 
Ich probiers mal! Danke!
Soapy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 88

Windows 2000
Delphi 2005 Personal
BeitragVerfasst: Fr 28.12.07 12:35 
ausblenden Delphi-Quelltext
1:
aminus := (x + (varSteigung*(-400)));					


So geht es!
Das Minus vor der Klammer weg und vor die 400 hängen!
Vielen Dank!
Jetzt hab ich mein erstes Programm geschrieben was man auch zu etwas gebrauchen kann!
Soapy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 88

Windows 2000
Delphi 2005 Personal
BeitragVerfasst: Fr 28.12.07 12:38 
Und das Koordinatensystem sieht jetzt so aus:


ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
procedure TLineareFunktionen.Standart(Sender: TObject);
var i, j: integer;
var k, l: integer;
begin
// Rand
Koordinatensystem.Canvas.MoveTo(0,0);
Koordinatensystem.Canvas.LineTo(Koordinatensystem.clientwidth-10);
Koordinatensystem.Canvas.LineTo(Koordinatensystem.clientwidth-1, Koordinatensystem.ClientHeight-1);
Koordinatensystem.Canvas.LineTo(0, Koordinatensystem.ClientHeight-1);
Koordinatensystem.Canvas.LineTo(00);
// Mittelpunkt
x := (Koordinatensystem.Clientwidth div 2);
y := (Koordinatensystem.ClientHeight div 2);
// Achsen
Koordinatensystem.Canvas.MoveTo(x,y);
Koordinatensystem.Canvas.LineTo(0 , y);
Koordinatensystem.Canvas.MoveTo(x,y);
Koordinatensystem.Canvas.LineTo(Koordinatensystem.clientwidth, y);
Koordinatensystem.Canvas.MoveTo(x,y);
Koordinatensystem.Canvas.LineTo(x, Koordinatensystem.Clientheight);
Koordinatensystem.Canvas.MoveTo(x,y);
Koordinatensystem.Canvas.LineTo(x, 0);
Koordinatensystem.Canvas.TextOut(x-2, -8'x');
Koordinatensystem.Canvas.TextOut(Koordinatensystem.clientwidth-3, y-8'x');
Koordinatensystem.Canvas.TextOut(x-1010'x');
Koordinatensystem.Canvas.TextOut(Koordinatensystem.clientwidth-10, y+10'y');
for i := 0 to 16 do
  for j := 0 to 23 do
    Koordinatensystem.Canvas.Pixels[x + j * 40,y - i * 40] := clblack;
for k := 0 to 16 do
  for l := 0 to 23 do
    Koordinatensystem.Canvas.Pixels[x - k * 40, y + l * 40] := clblack;
for k := 0 to 16 do
  for l := 0 to 23 do
    Koordinatensystem.Canvas.Pixels[x + k * 40, y + l * 40] := clblack;
for k := 0 to 16 do
  for l := 0 to 23 do
    Koordinatensystem.Canvas.Pixels[x - k * 40, y - l * 40] := clblack;
end;
DrRzf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 260

Win XP Prof
D7 Enterprise
BeitragVerfasst: Fr 28.12.07 16:38 
Sieht ja schon besser aus.
und die 4 for schleifen könntest du in eine packen

ausblenden Delphi-Quelltext
1:
2:
for i := -16 to 16 do  
  for j := -23 to 23 do

_________________
rein statistisch gesehen darf man keiner statistik trauen die man nicht selbst gefälscht hat.