AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Diese prozedur gängig machen

Ein Thema von LkZ · begonnen am 26. Nov 2004 · letzter Beitrag vom 27. Nov 2004
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#11

Re: Diese prozedur gängig machen

  Alt 26. Nov 2004, 15:19
Zitat von Nicodius:
war nur beiläufig...

aber ich glaube das dzdas besser mit ner function machen solltest - vl geht das gezeichnete verloren ...
eine Function?

Und was soll zurück gegeben werden?

ich würde es so lassen, geht doch einwandfrei, nur, dass der Kreis evtl. nicht den Bedürfnissen von LkZ entspricht.
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#12

Re: Diese prozedur gängig machen

  Alt 26. Nov 2004, 15:24
vl ein bitmap .. was er dann im form1 mit canvas.draw zeichnet
Nico Müller
  Mit Zitat antworten Zitat
LkZ

Registriert seit: 26. Mai 2004
75 Beiträge
 
Delphi 6 Enterprise
 
#13

Re: Diese prozedur gängig machen

  Alt 26. Nov 2004, 15:30
Zitat von Matze:
Zitat von Nicodius:
war nur beiläufig...

aber ich glaube das dzdas besser mit ner function machen solltest - vl geht das gezeichnete verloren ...
eine Function?

Und was soll zurück gegeben werden?

ich würde es so lassen, geht doch einwandfrei, nur, dass der Kreis evtl. nicht den Bedürfnissen von LkZ entspricht.
Wie kann man das denn hinbekommen, dass es meinen bedürfnissen entspricht?
Immer probiern!
  Mit Zitat antworten Zitat
LkZ

Registriert seit: 26. Mai 2004
75 Beiträge
 
Delphi 6 Enterprise
 
#14

Re: Diese prozedur gängig machen

  Alt 26. Nov 2004, 15:34
Oder man zwischenspeichert die Kreise; Ich hab das gefühl das die "überschrieben" werden
Immer probiern!
  Mit Zitat antworten Zitat
Benutzerbild von Nothine
Nothine

Registriert seit: 3. Jul 2004
Ort: Mülheim an der Ruhr
198 Beiträge
 
Delphi 5 Enterprise
 
#15

Re: Diese prozedur gängig machen

  Alt 26. Nov 2004, 17:37
hab den code grad mal überflogen und ja, deine vorherigen kreise werden überschrieben, da du von innen nach außen zeichnest, womit die immer größer werdenden neu gezeichneten kreise die alten überdecken (und der größte kommt zuletzt)... versuch mal die for-to-do schleife durch eine for-downto-do zu ersetzen und den atomkern dementsprechend als letztes zu zeichnen

//Edit: oder ich hab den code nich ordentlich überflogen und die kreise werden kleiner, dann weiß ich es auch nich
if ThisPost is senseless then
ThisPost.WasPostedBy := SomeoneElse();
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#16

Re: Diese prozedur gängig machen

  Alt 26. Nov 2004, 17:57
Zitat von LkZ:
Wie kann man das denn hinbekommen, dass es meinen bedürfnissen entspricht?
Ich meinte damit nur, es zeichnet einen Kreis, nur willst du den Kreis wahrscheinlich anders haben, weil ja etwas an dem Code nicht stimmt, laut deiner Aussage.
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#17

Re: Diese prozedur gängig machen

  Alt 26. Nov 2004, 19:29
Die Lösung...


Delphi-Quellcode:
procedure TForm1.DrawModel(Canvas:TCanvas;AtomNr:Real;Rad:integer);
var x0,y0,k,d:integer;
begin
  x0:=Form1.ClientWidth div 2;
  y0:=Form1.ClientHeight div 2;

  // Canvas.Ellipse(x0-Rad,y0-Rad,x0+Rad,y0+Rad); // -> wird in der schleife gezeichnet
  for k:=round(sqrt(AtomNr/2)) downto 1 do // -> hier war der fehler !!!!
  begin
    d:=Rad*k; // nur einmal berechnet je durchgang!
    Canvas.Ellipse(x0-d,y0-d,x0+d,y0+d);
  end;
end;
es muss vom äussersten zum kleinsten kreis gezeichnet werden, da alles im kreis neu gezeichnet wird!!!
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#18

Re: Diese prozedur gängig machen

  Alt 26. Nov 2004, 19:53
Zitat von Nothine:
hab den code grad mal überflogen und ja, deine vorherigen kreise werden überschrieben, da du von innen nach außen zeichnest, womit die immer größer werdenden neu gezeichneten kreise die alten überdecken (und der größte kommt zuletzt)... versuch mal die for-to-do schleife durch eine for-downto-do zu ersetzen und den atomkern dementsprechend als letztes zu zeichnen

//Edit: oder ich hab den code nich ordentlich überflogen und die kreise werden kleiner, dann weiß ich es auch nich
ooops da war ja die lösung schon!
  Mit Zitat antworten Zitat
Benutzerbild von atreju2oo0
atreju2oo0

Registriert seit: 5. Dez 2003
Ort: Berlin
289 Beiträge
 
Delphi 6 Enterprise
 
#19

Re: Diese prozedur gängig machen

  Alt 26. Nov 2004, 20:29
Alternativ könnte man die Brush.color auch auf durchsichtig setzen...
Thomas
  Mit Zitat antworten Zitat
LkZ

Registriert seit: 26. Mai 2004
75 Beiträge
 
Delphi 6 Enterprise
 
#20

Re: Diese prozedur gängig machen

  Alt 27. Nov 2004, 11:52
Ja danke leute, is mir gestern auch eingefallen.. hab ich auch schon gemacht

bis dann
MfG LKZ
Immer probiern!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 00:38 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