1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
{ Compilation testée : FreePascal 2.6.2, Delphi 6
Unité WinGraph : http://math.ubbcluj.ro/~sberinde/wingraph/
Représentation d'un tableau à trois dimensions }
program dimensions4;
{$APPTYPE GUI}
{$IFDEF FPC}{$MODE DELPHI}{$ENDIF}
uses
WinCrt, WinGraph, WinMouse;
procedure GraphMode;
var
gd, gm: smallInt;
begin
SetWindowSize(540, 540);
gd := d8bit;
gm := mCustom;
InitGraph(gd, gm, 'FreePascal et WinGraph');
SetBkColor(MidnightBlue);
SetColor(Tangerine);
ClearViewPort;
end;
procedure TextMode;
begin
while not(KeyPressed or CloseGraphRequest) do
Delay(10);
CloseGraph;
end;
type
tArray = array of array of array of integer;
procedure GraphArray(a: tArray);
const
top = true;
c1 = 100;
c2 = 40;
c3 = 10;
var
i, j, k: integer;
x1, y1, x2, y2: smallint;
depth: word;
begin
SetFillStyle(EmptyFill, 0);
for i := 0 to Length(a)-1 do
begin
x1 := c1 * (i+1);
x2 := x1 + c2;
for j := 0 to Length(a[i])-1 do
begin
y1 := c1 * (j+1);
y2 := y1 + c2;
for k := 0 to Length(a[i,j])-1 do
begin
depth := c3 * (k+1);
Bar3D(x1, y1, x2, y2, depth, top);
end;
end;
end;
end;
var
b: tArray;
i, j: integer;
begin
Randomize;
GraphMode;
OutTextXY(10, 10, 'Tableau à trois dimensions');
SetLength(b, 4, 4);
for i := 0 to Length(b)-1 do
for j := 0 to Length(b[i])-1 do
SetLength(b[i,j], Random(6)); // 3e dimension aléatoire de 0 à 5
GraphArray(b);
TextMode;
end. |
Partager