Aide - Recherche - Membres - Calendrier
Version complète : Mandelbrot.pas LifeDrive
Les Forums de PalmAttitude.org > GENERAL PalmOS > Développement sous PalmOS
Thireus
Bon voici ma première application pour LifeDrive:

CODE
{$appl Thir}
program Thireus(cmd);

{$i PalmAPI2.pas}
{$i PPlib.pas}


procedure write(S: string;X,Y:integer);
var
  N: integer;
begin
  N:=length(S);
  WinDrawChars(S,N,X,Y);
end;

Procedure DrawCell(u,v,X,Y: Integer);
Var
  Rec: RectangleType;
begin
  With Rec do begin
    topLeft.X := X;
    topLeft.y := Y;
    extent.x  := u;
    extent.y  := v;
      WinDrawRectangle(Rec,0);
  end;
end;

var
  Cmd: UInt16;
  Wrt,oldScale: integer;

procedure go;
label
  1;
var
  i,x,y: integer;
  x_n,x_nn,y_n,a_0,b_0: real;
  a: Boolean;
  w,wt,dep1,dep2: UInt32;
  mode: WinScreenModeOperation;

begin

  a:=true;
  w:=320;
  wt:=480;
  dep1:=8;
  dep2:=16;
  mode:=winScreenModeSet;
  WinScreenMode(mode,w,wt,dep1,a);
  WinScreenMode(mode,w,wt,dep2,a);

  WinSetBackColor(255);
  WinSetForeColor(255);
  WinSetTextColor(0);

WinPushDrawState;
oldScale := WinSetCoordinateSystem(0);

for x:=0 to 320 do begin

b_0 := (x-160)/150;

for y:=0 to 480 do begin

  a_0 := -(y-240+100)/150;
  i:=0;

x_n := 0;
y_n := 0;

  while i<100 do begin
   x_nn := x_n;
   x_n := x_n*x_n - y_n*y_n + a_0;
   y_n := 2*x_nn*y_n + b_0;
   if (x_n*x_n + y_n*y_n) > 4  then begin
    WinSetForeColor(100-i);
    DrawCell(1,1,x,y);
    i:=100;
   end;
   i:=i+1;
  end;

end;

write('Currently running on column '+intToString(x)+'                         ',0,0);

   if KeyCurrentState<>0 then begin
    goto 1;
   end;

end;

// WinDrawLine(0,0,160,225);
1:

WinPopDrawState;

end;

begin
    go;
    
while KeyCurrentState=0 do;
    
// if cmd=sysAppLaunchCmdNormalLaunch then begin
//  Wrt:=SysTaskDelay(10*SysTicksPerSecond);
// end;
end.


Donc les corrections que je souhaîte apporter dans un premier temps, est-ce que vous pouvez m'aider?

(1) Passer en mode hires+ sans que l'écran ne tombe en 8bits... Pour le moment je n'ai trouvé que cette méthode
(2) Cacher la barre de statut
(3) Des couleurs en 16Bits

Merci si vous pouvez m'apporter un peu d'aide sourire.gif
Patrice
Merci de ne pas multiplier les sujets sur la même question. Je clos le doublon. Tu devrais chercher dans les fonctions WinPaint* au lieu de WinDraw*.
Thireus
Merci beaucoup sourire.gif
Thireus
Je ne comprends pas comment est-ce que je peux avoir du 16bits... avec WinPaint?
Patrice
Pour autant que je sache (en lisant la doc siffle.gif ), les fonctions WinPaint* utilisent le contexte courante. Les fonctions WinSetXXXColorRGB() changent justement les couleurs du contexte... A partir du moment où l'affichage est en 16 bits, les valeurs RGB devraient être utilisées. Je n'en sais pas plus, je n'ai jamais fait dans l'artistique...
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.