AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Logik-Problem (glscene)
Thema durchsuchen
Ansicht
Themen-Optionen

Logik-Problem (glscene)

Ein Thema von Alexander · begonnen am 23. Jun 2003
Antwort Antwort
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#1

Logik-Problem (glscene)

  Alt 23. Jun 2003, 18:53
Hi,
ich zerbreche mir gerade den Kopf darüber wie ich folgendes machen kann. Eigentlich ist auch schon so gut wie alles fertig: ein einfaches Ionengitter.
Also derzeit wird ein 3d-Ionengitter gezeichnet. Nun will ich Kation und Anion durch Farben erkennbar machen. (ein Anion ist also in "alllen Ebenen" nur von Kationen umgeben und umgekehrt.)
Dabei liegt mein Problem. Das Färben habe ich jetzt dank tommie-lie hinbekommen. Doch färbt er in einer falschen Reihenfolge (kommt also nicht hin, dass Anion nur von Kationen umgeben sind und umgekehrt)
Also hier der Source:
Delphi-Quellcode:
procedure Tmodell.FormShow(Sender: TObject);
var
 Sphere_array : ARRAY OF TSphere;
 i, x, y, z : Integer;
 koordinaten : TGLCoordinates;
begin
  for z:=0 to settings.SpinEdit2.Value -1 do
   begin
     if (z >= 1) then
      koordinaten.Z := Z * 3;
      koordinaten.X := 0;
      koordinaten.Y := 0;
     SetLength(Sphere_array, Z+1);
     Sphere_array[Z] := TSphere(DummyCube1.AddNewChild(TSphere));
//hier sollen die Kugeln der x-Achse gefärbt werden
    if (z mod 2) = 0 then
      sphere_array[z].Material := GLMaterialLibrary1.Materials.Items[1].Material
    else
      sphere_array[z].Material := GLMaterialLibrary1.Materials.Items[0].Material;
     Sphere_array[Z].Radius := 1;
     Sphere_array[Z].Position.X := koordinaten.X;
     Sphere_array[Z].Position.Y := koordinaten.Y;
     Sphere_array[Z].Position.Z := koordinaten.Z;

    for y:=0 to settings.SpinEdit2.Value -1 do
     begin
       if (y >= 1) then
        koordinaten.Y := koordinaten.Y + 3;
        koordinaten.X := 0;
       SetLength(Sphere_array, y+1);
       Sphere_array[y] := TSphere(DummyCube1.AddNewChild(TSphere));
//hier sollen die Kugeln der y-Achse gefärbt werden
    if (y mod 2) = 0 then
      sphere_array[y].Material := GLMaterialLibrary1.Materials.Items[0].Material
    else
      sphere_array[y].Material := GLMaterialLibrary1.Materials.Items[1].Material;
       Sphere_array[y].Radius := 1;
       Sphere_array[y].Position.X := koordinaten.X;
       Sphere_array[y].Position.Y := koordinaten.Y;
       Sphere_array[y].Position.Z := koordinaten.Z;

       for x:=0 to settings.SpinEdit1.Value -1 do
        begin
         if (x >= 1) then
          koordinaten.X := koordinaten.X + 3;
         SetLength(Sphere_array, x+1);
         Sphere_array[x] := TSphere(DummyCube1.AddNewChild(TSphere));
//hier sollen die Kugeln der x-Achse gefärbt werden
    if (x mod 2) = 0 then
      sphere_array[x].Material := GLMaterialLibrary1.Materials.Items[1].Material
    else
      sphere_array[x].Material := GLMaterialLibrary1.Materials.Items[0].Material;
         Sphere_array[x].Radius := 1;
         Sphere_array[x].Position.X := koordinaten.X;
         Sphere_array[x].Position.Y := koordinaten.Y;
         Sphere_array[x].Position.Z := koordinaten.Z;
        end;
      end;
    end;
end;
Ich glaube ich gehe vollkommen falsch dran. Bei den Kommentaren liegen die falschen Stellen
Wäre toll, wenn ihr mir aus meiner Not helfen könntet. (brauche es für ein Chemie-Referat in Chemie)
PS: Zum Vorstellen meines Fehlers habe ich mal das Kompilat rangehängt. Nicht zu viele Kugeln auswählen
Angehängte Dateien
Dateityp: zip i-gitter.zip (330,2 KB, 16x aufgerufen)
Alexander
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:24 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