Hi!!
ich hab da ne prozedur, sie funktioniert (syntaktisch), aber nicht sinn gemäß.
Hier mal eine kostprobe:
Quellcode: zusammenfalten | markieren
Delphi-Quellcode:
procedure TForm1.DrawModel(Canvas:TCanvas;AtomNr,
Rad:integer);
var x0,y0,n,k:integer;
a,sa:Real;
begin
x0:=Form1.ClientWidth
div 2;
{Mitte der Form finden}
y0:=Form1.ClientHeight
div 2;
a:=ANr / 2;
{Formel für bestimmung von Elektronen pro Schale: 2*n^2}
sa:=sqrt(a);
{Gleichung aufstellen: nach n auflösen; ges.:n=Anzahl SchAle}
n:=round(sa);
{Atom Nummer=2*n^2 | /2}
{<=> Atom Nummer/2=n^2 | Wurzel}
{<=> Wurzel(Atom Nummer/2) = n}
Canvas.Ellipse(x0-
Rad,y0-
Rad,x0+
Rad,y0+
Rad);
{Für den (Atom)Kern}
for k:=1
to n
do {n gefunden}
begin
Canvas.Ellipse(x0-(
Rad*k),y0-(
Rad*k),x2+(
Rad*k),y0+(
Rad*k));
{Kreise zeichnen mit gleichem Abstand}
end;
end;
bitte nicht verwechseln:
Rad=Radius des kreises in Pixel
er zeichnet statt n Kreise nur einen..
ich weiss nicht mehr, was daran so rumzufeilen ist, obwohl das echt simpel ist...
Naja danke im Voraus
MfG LkZ