![]() |
Kreis berechnen und anzeigen...
Hallo,
ich wollte einen Kreis Berechnen. dh Kreisumfang Kreisfläche usw .. also man gibt zb einen radius ein und der umfang erscheint.. das ist nicht das problem .. Nun will ich auch das der Kreis auch angezeigt wird .. zb das der kreis mit dem radius 5cm halb so groß ist wie der kreis mit dem radius 10 cm und falls möglich auch das der flächeninhalt des kreissektors angezeigt wird.. wäre nett wenn mir einer bei dieser verbildlichung helfen könnte danke im vorraus |
Re: Kreis berechnen und anzeigen...
Für kleine Zeichnungen nimmst du am besten die TPaintBox-Komponente. Über die Canvas-Eigenschaft der PaintBox kannst du nun malen. Dafür stehen dir eine Vielzahl von Möglichkeiten zur Verfügung,
![]() Für den Kreissektor kannst du dir evt. ![]() ![]() ![]() ![]() greetz Mike |
Re: Kreis berechnen und anzeigen...
ich habe nie mit ner paintbox und canvas gearbeitet , kannst du mir sagen wie ich das nutze ?
ich will ja einfach das die werte die rauskommen übernommen werden .. wie zb radius habe ich 5 eingegeben .. ok dh der umfang ist 2.r.Pi und das soll der halt zeichnen ... MfG |
Re: Kreis berechnen und anzeigen...
Benutzen tust du das Canvas so:
Delphi-Quellcode:
Die Befehle dafür findest du unter diesem Link ;)
PaintBox1.Canvas.
![]() mfg Looper |
Re: Kreis berechnen und anzeigen...
das bringt mich leider nicht weiter ..
wie kann ich denn diese functionen auf das ergebnis meiner rechnungen übertragen ? kann mir einer einen beispielscode mal zeigen wie man das ungefähr macht ? mfg Muffel |
Re: Kreis berechnen und anzeigen...
Delphi-Quellcode:
Wenn ich mich nicht verrechnet habe, bekommst Du so einen Kreis mit dem im Edit eingegebenen Radius in mm (Eingabe mit ENTER abschließen).
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) edt1: TEdit; pb1: TPaintBox; procedure edt1KeyPress(Sender: TObject; var Key: Char); procedure FormCreate(Sender: TObject); procedure pb1Paint(Sender: TObject); private { Private-Deklarationen } FRadius: integer; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.edt1KeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin Key := #0; FRadius := StrToIntDef(edt1.Text,0); pb1.repaint; end; end; procedure TForm1.FormCreate(Sender: TObject); begin FRadius := 0; end; procedure TForm1.pb1Paint(Sender: TObject); const Start = 100; var Kantenlaenge: Integer; begin with pb1 do begin Canvas.Pen.Color := clRed; SetMapMode(Canvas.Handle, MM_LOMETRIC); Kantenlaenge := FRadius * 20 + Start; Ellipse(Canvas.Handle,pb1.Left + Start,-(pb1.Top + Start),pb1.Left + Kantenlaenge,-(pb1.Top + Kantenlaenge)); end; end; end. |
Re: Kreis berechnen und anzeigen...
hallo
ich habe es genau so gemacht wie du es gesagt hast leider kommt nur ein stumpfes geräusch wenn ich eine zahl eingebe und bestätige... =/ |
Re: Kreis berechnen und anzeigen...
hallo muffel,
wie wärs mit 'ner TChart komponente...? da brauchste nur 'n paarameter übergeben und die kompo weiss selbst, wie man einen kreis zeichnet... ;-) |
Re: Kreis berechnen und anzeigen...
Liste der Anhänge anzeigen (Anzahl: 1)
hey
wie gesagt noch nie mit paintbox ö.A. gearbeitet.. ich zeig euch jetzt mal was ich meine vll ist es dann besser zu verstehen ;) hier auch nochmal der sourcecode es würde mir reichen würde ich nur zb den kreis durch den radius erzeugen .. wie man durch die anderen daten an einen kreis kommt kann ich ja dann leicht ableiten ...
Delphi-Quellcode:
jetzt habe ich versucht den vorschlag von deddy einzubauen .. aber ohne erfolg..
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) radiuslbl: TLabel; radiusedit: TEdit; winkellbl: TLabel; winkeledit: TEdit; laengelbl: TLabel; laengeedit: TEdit; RadioGroup1: TRadioGroup; umfangbut: TButton; flaechebut: TButton; laengebut: TButton; winkelbut: TButton; flaechekreisbut: TButton; bogenbut: TButton; Panel1: TPanel; resultlbl: TLabel; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; neubut: TButton; procedure FormCreate(Sender: TObject); procedure setzenbutClick(Sender: TObject); procedure umfangbutClick(Sender: TObject); procedure flaechebutClick(Sender: TObject); procedure laengebutClick(Sender: TObject); procedure winkelbutClick(Sender: TObject); procedure flaechekreisbutClick(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button7Click(Sender: TObject); procedure neubutClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin umfangbut.Enabled := false; flaechebut.Enabled := false; bogenbut.Enabled := false; winkelbut.Enabled := false; laengebut.Enabled := false; flaechekreisbut.Enabled := false; radiuslbl.Enabled := false; radiusedit.Enabled := false; winkellbl.Enabled := false; winkeledit.Enabled := false; laengelbl.Enabled := false; laengeedit.Enabled := false; neubut.Enabled := false; end; procedure TForm1.setzenbutClick(Sender: TObject); begin radiuslbl.Enabled := false; radiusedit.Enabled := false; winkellbl.Enabled := false; winkeledit.Enabled := false; laengelbl.Enabled := false; laengeedit.Enabled := false; umfangbut.Enabled := true; flaechebut.Enabled := true; bogenbut.Enabled := true; winkelbut.Enabled := true; laengebut.Enabled := true; flaechekreisbut.Enabled := true; end; procedure TForm1.umfangbutClick(Sender: TObject); VAR Radius : REAL; begin Radius := StrToFloat(radiusedit.Text); resultlbl.Caption := FloatToStr(Radius*2*Pi); neubut.Enabled := true; end; procedure TForm1.flaechebutClick(Sender: TObject); VAR Radius : REAL; begin Radius := StrToFloat(radiusedit.Text); resultlbl.Caption := FloatToStr(Radius*Radius*Pi); end; procedure TForm1.laengebutClick(Sender: TObject); VAR winkel : REAL; Var radius : Real; begin radius := StrToFloat(radiusedit.Text); winkel := StrToFloat(winkeledit.Text); resultlbl.Caption := FloatToStr(winkel/180*radius*Pi); end; procedure TForm1.winkelbutClick(Sender: TObject); VAR laenge : REAL; begin laenge := StrToFloat(laengeedit.Text); resultlbl.Caption := FloatToStr(laenge/Pi*180); end; procedure TForm1.flaechekreisbutClick(Sender: TObject); VAR Radius : REAL; var winkel : Real ; begin Radius := StrToFloat(radiusedit.Text); winkel := StrToFloat(winkeledit.Text); resultlbl.Caption := FloatToStr(winkel/360*radius*radius*Pi); end; procedure TForm1.Button1Click(Sender: TObject); begin radiuslbl.Enabled := true; radiusedit.Enabled := true; Button2.Enabled := false; Button3.Enabled := false; Button4.Enabled := false; Button5.Enabled := false; Button6.Enabled := false; Button1.Enabled := false; end; procedure TForm1.Button7Click(Sender: TObject); begin radiuslbl.Enabled := false; radiusedit.Enabled := false; winkellbl.Enabled := false; winkeledit.Enabled := false; laengelbl.Enabled := false; laengeedit.Enabled := false; Button7.Enabled := false; umfangbut.Enabled := true; end; procedure TForm1.neubutClick(Sender: TObject); begin umfangbut.Enabled := true; flaechebut.Enabled := true; bogenbut.Enabled := true; winkelbut.Enabled := true; laengebut.Enabled := true; flaechekreisbut.Enabled := true; radiuslbl.Enabled := true; radiusedit.Enabled := true; winkellbl.Enabled := true; winkeledit.Enabled := true; laengelbl.Enabled := true; laengeedit.Enabled := true; resultlbl.Caption := FloatToStr(0*0); end; end.
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, PaintBox1; type TForm1 = class(TForm) radiuslbl: TLabel; radiusedit: TEdit; winkellbl: TLabel; winkeledit: TEdit; laengelbl: TLabel; laengeedit: TEdit; RadioGroup1: TRadioGroup; umfangbut: TButton; flaechebut: TButton; laengebut: TButton; winkelbut: TButton; flaechekreisbut: TButton; bogenbut: TButton; Panel1: TPanel; resultlbl: TLabel; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; neubut: TButton; pb1: TPaintBox1; edt1: TEdit; procedure FormCreate(Sender: TObject); procedure setzenbutClick(Sender: TObject); procedure umfangbutClick(Sender: TObject); procedure flaechebutClick(Sender: TObject); procedure laengebutClick(Sender: TObject); procedure winkelbutClick(Sender: TObject); procedure flaechekreisbutClick(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button7Click(Sender: TObject); procedure neubutClick(Sender: TObject); procedure edt1KeyPress(Sender: TObject; var Key: Char); procedure pb1Paint(Sender: TObject); private { Private-Deklarationen } FRadius: integer; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin umfangbut.Enabled := false; flaechebut.Enabled := false; bogenbut.Enabled := false; winkelbut.Enabled := false; laengebut.Enabled := false; flaechekreisbut.Enabled := false; radiuslbl.Enabled := false; radiusedit.Enabled := false; winkellbl.Enabled := false; winkeledit.Enabled := false; laengelbl.Enabled := false; laengeedit.Enabled := false; neubut.Enabled := false; FRadius := 0; end; procedure TForm1.setzenbutClick(Sender: TObject); begin radiuslbl.Enabled := false; radiusedit.Enabled := false; winkellbl.Enabled := false; winkeledit.Enabled := false; laengelbl.Enabled := false; laengeedit.Enabled := false; umfangbut.Enabled := true; flaechebut.Enabled := true; bogenbut.Enabled := true; winkelbut.Enabled := true; laengebut.Enabled := true; flaechekreisbut.Enabled := true; end; procedure TForm1.umfangbutClick(Sender: TObject); VAR Radius : REAL; begin Radius := StrToFloat(radiusedit.Text); resultlbl.Caption := FloatToStr(Radius*2*Pi); neubut.Enabled := true; end; procedure TForm1.flaechebutClick(Sender: TObject); VAR Radius : REAL; begin Radius := StrToFloat(radiusedit.Text); resultlbl.Caption := FloatToStr(Radius*Radius*Pi); end; procedure TForm1.laengebutClick(Sender: TObject); VAR winkel : REAL; Var radius : Real; begin radius := StrToFloat(radiusedit.Text); winkel := StrToFloat(winkeledit.Text); resultlbl.Caption := FloatToStr(winkel/180*radius*Pi); end; procedure TForm1.winkelbutClick(Sender: TObject); VAR laenge : REAL; begin laenge := StrToFloat(laengeedit.Text); resultlbl.Caption := FloatToStr(laenge/Pi*180); end; procedure TForm1.flaechekreisbutClick(Sender: TObject); VAR Radius : REAL; var winkel : Real ; begin Radius := StrToFloat(radiusedit.Text); winkel := StrToFloat(winkeledit.Text); resultlbl.Caption := FloatToStr(winkel/360*radius*radius*Pi); end; procedure TForm1.Button1Click(Sender: TObject); begin radiuslbl.Enabled := true; radiusedit.Enabled := true; Button2.Enabled := false; Button3.Enabled := false; Button4.Enabled := false; Button5.Enabled := false; Button6.Enabled := false; Button1.Enabled := false; end; procedure TForm1.Button7Click(Sender: TObject); begin radiuslbl.Enabled := false; radiusedit.Enabled := false; winkellbl.Enabled := false; winkeledit.Enabled := false; laengelbl.Enabled := false; laengeedit.Enabled := false; Button7.Enabled := false; umfangbut.Enabled := true; end; procedure TForm1.neubutClick(Sender: TObject); begin umfangbut.Enabled := true; flaechebut.Enabled := true; bogenbut.Enabled := true; winkelbut.Enabled := true; laengebut.Enabled := true; flaechekreisbut.Enabled := true; radiuslbl.Enabled := true; radiusedit.Enabled := true; winkellbl.Enabled := true; winkeledit.Enabled := true; laengelbl.Enabled := true; laengeedit.Enabled := true; resultlbl.Caption := FloatToStr(0*0); end; procedure TForm1.edt1KeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin Key := #0; FRadius := StrToIntDef(edt1.Text,0); pb1.repaint; end; end; procedure TForm1.pb1Paint(Sender: TObject); const Start = 100; var Kantenlaenge: Integer; begin with pb1 do begin Canvas.Pen.Color := clRed; SetMapMode(Canvas.Handle, MM_LOMETRIC); Kantenlaenge := FRadius * 20 + Start; Ellipse(Canvas.Handle,pb1.Left + Start,-(pb1.Top + Start),pb1.Left + Kantenlaenge,-(pb1.Top + Kantenlaenge)); end; end; end. |
Re: Kreis berechnen und anzeigen...
Was ist denn TPaintbox1?
|
Re: Kreis berechnen und anzeigen...
die paintbox ?
|
Re: Kreis berechnen und anzeigen...
pb1 ist ein Objekt der Klasse TPaintBox1. Wenn Du diese Klasse nicht selbst erstellt hast, gibt es sie gar nicht (in der uses-Klausel steht übrigens auch Paintbox1).
|
Re: Kreis berechnen und anzeigen...
hat geklappt.
vielen Dank ! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:01 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