Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Sa Jul 12, 2025 21:28

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 
Autor Nachricht
 Betreff des Beitrags: C++ Code --> Delphi
BeitragVerfasst: Fr Jan 17, 2003 08:11 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Nov 02, 2002 18:06
Beiträge: 299
Wohnort: Dresden
Hi,
Ich hab gestern versucht ein C++ Code Schnipsel nach Delphi zu übersetzten. Das Problem: Es funktioniert nicht so, wie es soll. Kann sich vielleicht jemand das Ganze angucken.

C++:
Code:
  1.  
  2.  
  3. for ( int y = 2; y < WATERY - 2; y++ )
  4.  
  5.     {
  6.  
  7.  &nbsp;for ( int x = 2; x < WATERX-2; x++ )
  8.  
  9.  &nbsp;{
  10.  
  11.  &nbsp; float d;
  12.  
  13.  
  14.  
  15.  &nbsp; d = waterHeight[ x + WATERX * y ].y - waterHeight[ x - 1 + WATERX * y ].y;
  16.  
  17.  &nbsp; waterForce[ x + WATERX * y ] -= d;
  18.  
  19.  &nbsp; waterForce[ x - 1 + WATERX * y ] += d;
  20.  
  21.  &nbsp;
  22.  
  23.  &nbsp; d = waterHeight[ x + WATERX * y ].y - waterHeight[ x + WATERX * (y-1) ].y;
  24.  
  25.  &nbsp; waterForce[ x + WATERX * y ] -= d;
  26.  
  27.  &nbsp; waterForce[ x + WATERX * (y-1) ] += d;
  28.  
  29.  &nbsp;
  30.  
  31.  &nbsp; d = waterHeight[ x + WATERX * y ].y - waterHeight[ x + 1 + WATERX * y ].y;
  32.  
  33.  &nbsp; waterForce[ x + WATERX * y ] -= d;
  34.  
  35.  &nbsp; waterForce[ x + 1 + WATERX * y ] += d;
  36.  
  37.  &nbsp;
  38.  
  39.  &nbsp; d = waterHeight[ x + WATERX * y ].y - waterHeight[ x + WATERX * (y+1) ].y;
  40.  
  41.  &nbsp; waterForce[ x + WATERX * y ] -= d;
  42.  
  43.  &nbsp; waterForce[ x + WATERX * (y+1) ] += d;
  44.  
  45.  &nbsp;
  46.  
  47.  &nbsp; d = ( waterHeight[ x + WATERX * y ].y - waterHeight[ x + 1 + WATERX * (y+1) ].y) * INVSQRT2;
  48.  
  49.  &nbsp; waterForce[ x + WATERX * y ] -= d;
  50.  
  51.  &nbsp; waterForce[ x + 1 + WATERX * (y+1) ] += d;
  52.  
  53.  &nbsp;
  54.  
  55.  &nbsp; d = (waterHeight[ x + WATERX * y ].y - waterHeight[ x - 1 + WATERX * (y-1) ].y ) * INVSQRT2;
  56.  
  57.  &nbsp; waterForce[ x + WATERX * y ] -= d;
  58.  
  59.  &nbsp; waterForce[ x - 1 + WATERX * (y-1) ] += d;
  60.  
  61.  &nbsp;
  62.  
  63.  &nbsp; d = (waterHeight[ x + WATERX * y ].y - waterHeight[ x - 1 + WATERX * (y+1) ].y ) * INVSQRT2;
  64.  
  65.  &nbsp; waterForce[ x + WATERX * y ] -= d;
  66.  
  67.  &nbsp; waterForce[ x - 1 + WATERX * (y+1) ] += d;
  68.  
  69.  &nbsp;
  70.  
  71.  &nbsp; d = (waterHeight[ x + WATERX * y ].y - waterHeight[ x + 1 + WATERX * (y-1) ].y ) * INVSQRT2;
  72.  
  73.  &nbsp; waterForce[ x + WATERX * y ] -= d;
  74.  
  75.  &nbsp; waterForce[ x + 1 + WATERX * (y-1) ] += d;
  76.  
  77.  &nbsp;}
  78.  
  79.     }
  80.  
  81.  
  82.  
  83.     // Integration
  84.  
  85.     for ( int i = 0; i < nVertices; i++ )
  86.  
  87.  &nbsp;waterVelocity[ i ] += waterForce[ i ] * 0.045f;
  88.  
  89.  
  90.  
  91.     for ( i = 0; i < nVertices; i++ )
  92.  
  93.  &nbsp;waterHeight[ i ].y += waterVelocity[ i ];
  94.  
  95.  


Delphi:
Code:
  1.  
  2.  
  3. for x := 1 to size - 2 do
  4.  
  5.  &nbsp;begin
  6.  
  7.  &nbsp;for z := 1 to size - 2 do
  8.  
  9.  &nbsp; &nbsp;begin
  10.  
  11.  &nbsp; &nbsp;d := waterHeight[x, z] - waterHeight[x - 1, z];
  12.  
  13.  &nbsp; &nbsp;waterForce[x, z] := waterForce[x, z] - d;
  14.  
  15.  &nbsp; &nbsp;waterForce[x - 1, z] := waterForce[x - 1, z] + d;
  16.  
  17.  
  18.  
  19.  &nbsp; &nbsp;d := waterHeight[x, z] - waterHeight[x, z - 1];
  20.  
  21.  &nbsp; &nbsp;waterForce[x, z] := waterForce[x, z] - d;
  22.  
  23.  &nbsp; &nbsp;waterForce[x, z - 1] := waterForce[x, z - 1] + d;
  24.  
  25.  
  26.  
  27.  &nbsp; &nbsp;d := waterHeight[x, z] - waterHeight[x + 1, z];
  28.  
  29.  &nbsp; &nbsp;waterForce[x, z] := waterForce[x, z] - d;
  30.  
  31.  &nbsp; &nbsp;waterForce[x + 1, z] := waterForce[x + 1, z] + d;
  32.  
  33.  
  34.  
  35.  &nbsp; &nbsp;d := waterHeight[x, z] - waterHeight[x, z + 1];
  36.  
  37.  &nbsp; &nbsp;waterForce[x, z] := waterForce[x, z] - d;
  38.  
  39.  &nbsp; &nbsp;waterForce[x, z + 1] := waterForce[x, z + 1] + d;
  40.  
  41.  
  42.  
  43.  &nbsp; &nbsp;d := (waterHeight[x, z] - waterHeight[x - 1, z - 1]) * INVSQRT2;
  44.  
  45.  &nbsp; &nbsp;waterForce[x, z] := waterForce[x, z] - d;
  46.  
  47.  &nbsp; &nbsp;waterForce[x - 1, z - 1] := waterForce[x - 1, z - 1] + d;
  48.  
  49.  
  50.  
  51.  &nbsp; &nbsp;d := (waterHeight[x, z] - waterHeight[x + 1, z - 1]) * INVSQRT2;
  52.  
  53.  &nbsp; &nbsp;waterForce[x, z] := waterForce[x, z] - d;
  54.  
  55.  &nbsp; &nbsp;waterForce[x + 1, z - 1] := waterForce[x + 1, z - 1] + d;
  56.  
  57.  
  58.  
  59.  &nbsp; &nbsp;d := (waterHeight[x, z] - waterHeight[x + 1, z + 1]) * INVSQRT2;
  60.  
  61.  &nbsp; &nbsp;waterForce[x, z] := waterForce[x, z] - d;
  62.  
  63.  &nbsp; &nbsp;waterForce[x + 1, z + 1] := waterForce[x + 1, z + 1] + d;
  64.  
  65.  
  66.  
  67.  &nbsp; &nbsp;d := (waterHeight[x, z] - waterHeight[x - 1, z + 1]) * INVSQRT2;
  68.  
  69.  &nbsp; &nbsp;waterForce[x, z] := waterForce[x, z] - d;
  70.  
  71.  &nbsp; &nbsp;waterForce[x - 1, z + 1] := waterForce[x - 1, z + 1] + d;
  72.  
  73.  &nbsp; &nbsp;end;
  74.  
  75.  &nbsp;end;
  76.  
  77.  
  78.  
  79. for x := 0 to size - 1 do
  80.  
  81.  &nbsp;begin
  82.  
  83.  &nbsp;for z := 0 to size - 1 do
  84.  
  85.  &nbsp; &nbsp;begin
  86.  
  87.  &nbsp; &nbsp;waterVelocity[x, z] := waterVelocity[x, z] + (waterForce[x, z] * 0.045);
  88.  
  89.  &nbsp; &nbsp;end;
  90.  
  91.  &nbsp;end;
  92.  
  93.  
  94.  
  95. for x := 0 to size - 1 do
  96.  
  97.  &nbsp;begin
  98.  
  99.  &nbsp;for z := 0 to size - 1 do
  100.  
  101.  &nbsp; &nbsp;begin
  102.  
  103.  &nbsp; &nbsp;waterHeight[x, z] := waterVelocity[x, z] + waterHeight[x, z];
  104.  
  105.  &nbsp; &nbsp;end;
  106.  
  107.  &nbsp;end;
  108.  
  109.  

Wobei waterHeight im C++ Code vom Typ 3dVector ist (x, y, z) und bei mir nur vom Typ single. Aber es reicht aus (x, y Angaben werden anders ermittelt. Außerdem ist WATERX und WATERY bei mir nur size (quadratisch).
Danke schonmal
MfG HomerS

_________________
"Ich würde ja gern die Welt verändern, aber Gott gibt mir den Quelltext nicht"


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 12 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 16 Queries | GZIP : On ]