Forum: Programmieren allgemein
by Nikolas,
12. Aug 2004
Ich hab noch kein 4D-Molekül gesehen. (Nicht dass ich schon mal eins gesehen hätte)
3D: Ich würd sagen, dass ist recht schwierig darzustellen und die 2D Darstellung reicht in den meisten Fällen gut aus.
Forum: Programmieren allgemein
by Nikolas,
12. Aug 2004
Gnaz einfach: Nimm mal ein Karo-Papier und mal einen Benzol-Ring drauf. Jetzt legst du den Ursprung eines Koordinatensystems an ein C-Atom und gibst den Ort der anderen Atome relativ zu diesem Atom an. Das kannst du dann in einem Array of Array of integer speichern und fertig. :thumb:
Forum: Programmieren allgemein
by Nikolas,
15. Jul 2004
Ich ernenne das C-Atom ganz oben zum Chefatom.
Array:C,0,-1 // eins drunter
:C,0,-2 // zwei drunter
:H,0,1 // ein H drüber
:H,-1,0 usw. // ein H nach links usw.
Falls es 3-D werden soll, gibt's eben eine Angabe mehr. Damit habe ich dann eine genaue Beschreibung der Atomzentren.
Forum: Programmieren allgemein
by Nikolas,
15. Jul 2004
Dann nimm ein Array of RAtom;
Type RAtom = record
x,y: integer; // Koordinaten
stoff: integer; // Atomsorte
Platz: integer; // Platz in der Bindungsliste
...end;Dieses Array kannst du dann ganz lässig abspeichern, aufrufen und mit ner Procedure zeichnen lassen.
€dit: Und wieder hatte Mathias eine ähnliche Idee und hat schneller geschrieben :wall:
Forum: Programmieren allgemein
by Nikolas,
15. Jul 2004
Die Eigenschaften, die man fast immer benutzt um einen Punkt im R2 zu bezeichnen: Eine X- und eine Y-Koordinate. Also würde ich voschlagen, dass du beim erstellen ein Atom (c oder sowas) zum Chef-Atom ernennst und alle anderen Atome relativ dazu speicherst. Also H²O mit Chefatom:=0 würde dann so abgespeichert werden:
H1(1/0) (rechts daneben)
H2(0/1) (oben drüber)
Forum: Programmieren allgemein
by Nikolas,
15. Jul 2004
Du könntest ein Molekül als Array of Array of CAtom (Deine Klasse), darstellen. Damit könntest du die Position aller Atome speichern. Ausserdem solltest du alle Atome nummerieren (von links nach rechts, von oben nach unten ...) und dann noch eine Liste erstellen in der die Bindungsart (einfach, doppelBinung) gespeichert ist.
Falls du auf die unterschiedlichen Atomradien achten willst, kannst du...