ďťż

Ładny brzuch

Witam
Napisalem w DelphiX program ktory buduje modele atomow jednak tylko w 2D i przy wiekszych jadrach wyglada to nieciekawie czy ma ktos pomysl na algorytm
ktory przedstawi to w 3D.
to jest kod praogramu
procedure TForm1.pierwiastek(pierwiastek:string); var  iniFile : TIniFile;  ine, ip : integer;  r : integer;  k, l, m, n, o, p, q, u : integer; begin  iniFile := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'pierwiastki.ini');  r := iniFile.ReadInteger(pierwiastek,'r',50);  Form1.DXDraw1.Surface.Fill(0);  //protony  for ip := 1 to High(protony) do  begin    protony[ip].X := cx - iniFile.ReadInteger(pierwiastek,'px' + IntToStr(ip),1000);    protony[ip].Y := cy - iniFile.ReadInteger(pierwiastek,'py' + IntToStr(ip),1000);  end;  //neutrony  for ine := 1 to High(neutrony) do  begin    neutrony[ine].X := cx - iniFile.ReadInteger(pierwiastek,'nx' + IntToStr(ine),1000);    neutrony[ine].Y := cy - iniFile.ReadInteger(pierwiastek,'ny' + IntToStr(ine),1000);  end;  //elektrony  //ukryj  for u := 1 to High(elektrony) do  begin    elektrony[u].X := -400;    elektrony[u].Y := -400;  end;  //1 powłoka  for k := 1 to iniFile.ReadInteger(pierwiastek,'ek',0) do  begin    elektrony[k].X := cx - 5 + r * sin(Pi * k + alfa);    elektrony[k].Y := cy - 5 + r * cos(Pi * k + alfa);  end;  //2 powłoka  for l := 1 to iniFile.ReadInteger(pierwiastek,'el',0) do  begin    elektrony[l].X := cx - 5 + (r + 30) * sin(Pi * l + - alfa);    elektrony[l].Y := cy - 5 + (r + 30) * cos(Pi * l + - alfa);  end;  //3 powłoka  for m := 1 to iniFile.ReadInteger(pierwiastek,'em',0) do  begin    elektrony[m].X := cx - 5 + (r + 60) * sin(Pi * m + alfa);    elektrony[m].Y := cy - 5 + (r + 60) * cos(Pi * m + alfa);  end;  //4 powłoka  for n := 1 to iniFile.ReadInteger(pierwiastek,'en',0) do  begin    elektrony[n].X := cx - 5 + (r + 90) * sin(Pi * n + - alfa);    elektrony[n].Y := cy - 5 + (r + 90) * cos(Pi * n + - alfa);  end;  //5 powłoka  for o := 1 to iniFile.ReadInteger(pierwiastek,'eo',0) do  begin    elektrony[o].X := cx - 5 + (r + 120) * sin(Pi * o + alfa);    elektrony[o].Y := cy - 5 + (r + 120) * cos(Pi * o + alfa);  end;  //6 powłoka  for p := 1 to iniFile.ReadInteger(pierwiastek,'ep',0) do  begin    elektrony[p].X := cx - 5 + (r + 150) * sin(Pi * p + - alfa);    elektrony[p].Y := cy - 5 + (r + 150) * cos(Pi * p + - alfa);  end;  //7 powłoka  for q := 1 to iniFile.ReadInteger(pierwiastek,'eq',0) do  begin    elektrony[q].X := cx - 5 + (r + 180) * sin(Pi * q + alfa);    elektrony[q].Y := cy - 5 + (r + 180) * cos(Pi * q + alfa);  end;  alfa := alfa + beta;  Form1.DXSpriteEngine1.Draw;  Form1.DXDraw1.Surface.Canvas.Release;  Form1.DXDraw1.Flip; end;
a to plik ini dla wodoru i helu
[Wodor] r=50 px1=10 py1=10 ek=1 [Hel] r=50 px1=20 py1=10 px2=0 py2=10 nx1=10 ny1=20 nx2=10 ny2=0 ek=2
prosze o pomoc bo to jest dla mnie bardzo wazne





Hmm... bawiles sie kiedys w 3d?:P Jak nie to tworz kule w GLUT - b. latwa obsluga ;)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •