Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 8 ] 
AutorSpráva
Offline

Skúsený užívateľ
Skúsený užívateľ
Goniometrický guláš

Registrovaný: 30.05.06
Prihlásený: 08.10.14
Príspevky: 1756
Témy: 35
Bydlisko: BA - WESTSIDE
Príspevok NapísalOffline : 21.05.2007 12:28

Tak, pred nejakým časom som na IRC oznamoval tvorbu Goniometrického gulášu, dnes ho predstavujem svetu.

Je to veľmi jednoduchá pascaloidná aplikácia, ktorá na požiadanie zobrazí grafy funkcií sínus, kosínus, tangens, kotangens, sekans, kosekans a arkustangens. Zobrazuje ich buď jednotlivo, alebo ako Guláš. Dá sa nastavovať "priblíženie", tj. ako keby vzdialenosť od stredu súradnicovej sústavy. Človek tak má možnosť prehľadnejšie vidieť priebeh funkcie (bohužiaľ, horizontálny ani vertikálny posun nie je možný, to až nabudúce ;) ). Vodorovné prerušované čiary majú y-hodnotu +1 a -1 a zvislé sú vždy celočíselné násobky pi/2.

Určite to nie je úplne ideálne, funkcie to pri veľkom priblížení nezobrazuje spojito, ale skôr ako postupnosti a na príkazy reaguje až po druhom stlačení, ale pohrať sa s tým dá. Možno to niekomu pomôže pri zapamätaní si grafov tých funkcií.

Tu je môj Guláš. Enjoy.

Ak by niekto chcel, tu je zdroják (ak sa vám niečo nezdá, kľudne ma poučte o mojich chybách):
Kód:
Program GoniometrickyGulas;
Uses Graph, Crt;
Var Gd, Gm: integer;
    i, x, Bulhar: longint;
Procedure Menu;
Var i:integer;
Begin
     ClrScr;
     Writeln;
     Writeln;
     Writeln;
     For i:= 1 To 19 Do Write(' ');
     Write(Chr(457));
     For i:= 1 To 40 Do Write(Chr(461));
     Write(Chr(443));
     Writeln;

     For i:= 1 To 19 Do Write(' ');
     Write(Chr(442));
     For i:= 1 To 40 Do Write(' ');
     Writeln(Chr(442));

     For i:= 1 To 19 Do Write(' ');
     Write(Chr(442));
     Write('             Goniometricky              ');
     Writeln(Chr(442));

     For i:= 1 To 19 Do Write(' ');
     Write(Chr(442));
     Write('                Gulas                   ');
     Writeln(Chr(442));

     For i:= 1 To 19 Do Write(' ');
     Write(Chr(442));
     For i:= 1 To 40 Do Write(' ');
     Writeln(Chr(442));
     For i:= 1 To 19 Do Write(' ');
     Write(Chr(442));
     For i:= 1 To 40 Do Write(' ');
     Writeln(Chr(442));

     For i:= 1 To 19 Do Write(' ');
     Write(Chr(442));
     Write('      [S]inus         [K]osinus         ');
     Writeln(Chr(442));

     For i:= 1 To 19 Do Write(' ');
     Write(Chr(442));
     Write('      [T]angens       K[o]tangens       ');
     Writeln(Chr(442));

     For i:= 1 To 19 Do Write(' ');
     Write(Chr(442));
     Write('      S[e]cant        Kose[c]ant        ');
     Writeln(Chr(442));

     For i:= 1 To 19 Do Write(' ');
     Write(Chr(442));
     Write('      A[r]custangens  [G]ulas!!!        ');
     Writeln(Chr(442));

     For i:= 1 To 19 Do Write(' ');
     Write(Chr(442));
     Write('      [ESC] - Koniec  [N]astavenia      ');
     Writeln(Chr(442));

     For i:= 1 To 19 Do Write(' ');
     Write(Chr(442));
     For i:= 1 To 40 Do Write(' ');
     Writeln(Chr(442));

     For i:= 1 To 19 Do Write(' ');
     Write(Chr(442));
     Write('      (c)  Peter Kovac, 2007            ');
     Writeln(Chr(442));

     For i:= 1 To 19 Do Write(' ');
     Write(Chr(442));
     For i:= 1 To 40 Do Write(' ');
     Writeln(Chr(442));


     For i:= 1 To 19 Do Write(' ');
     Write(Chr(456));
     For i:= 1 To 40 Do Write(Chr(461));
     Write(Chr(444));
End;

Procedure Nastavenia;
Begin
  ClrScr;
  Repeat
    Write('Nastav zvacsenie (rozsah 10-999, optimalne okolo 50): ');
    Readln(Bulhar);
  Until (Bulhar > 9) And (Bulhar < 1000);
  Menu;
End;

Procedure Inicializacia;
Var Gd, Gm, i, B: Integer;
Begin
  Gd:= 0;
  Gm:= 0;
  InitGraph(Gd, Gm, 'C:\TP7\BGI\');
  ClearDevice;
  SetColor(White);
  If GraphResult <> 0 Then Halt;
  Line(320, 0, 320, 480);
  Line(0, 240, 640, 240);
  SetColor(7);
  SetLineStyle(DottedLn, 0, NormWidth);
  Line(0, 240-Bulhar, 640, 240-Bulhar);
  Line(0, 240+Bulhar, 640, 240+Bulhar);
  SetColor(8);
  For i:= -10 To 10 Do
  Begin
    If i <> 0 Then
    Begin
      B:= Trunc(i*Pi*Bulhar/2);
      Line(320+B, 0, 320+B, 480);
    End;
  End;
End;

Procedure Sinus;
Var i, x, y: Integer;
Begin
  Inicializacia;
  For i:= -1080 To 1080 Do
  Begin
    x := Trunc(i*(Bulhar*Pi/180)+320);
    y := Trunc(Sin(i*Pi/180+Pi)*Bulhar+240);
    PutPixel(x, y, 11);
  End;
  ReadKey;
  CloseGraph;
  Menu;
End;

Procedure KoSinus;
Var i, x, y: Integer;
Begin
  Inicializacia;
  For i:= -1080 To 1080 Do
  Begin
    x := Trunc(i*(Bulhar*Pi/180)+320);
    y := Trunc(Cos(i*Pi/180+Pi)*Bulhar+240);
    PutPixel(x, y, 12);
  End;
  ReadKey;
  CloseGraph;
  Menu;
End;

Procedure Tangens;
Var i, x, y: Integer;
Begin
  Inicializacia;
  For i:= -1080 To 1080 Do
  Begin
    If i mod 90 <> 0 Then
    Begin
      x := Trunc(i*(Bulhar*Pi/180)+320);
      y := Trunc(Sin(i*Pi/180)/Cos(i*Pi/180)*Bulhar-240)*(-1);
      PutPixel(x, y, 10);
    End;
  End;
  ReadKey;
  CloseGraph;
  Menu;
End;

Procedure KoTangens;
Var i, x, y: Integer;
Begin
  Inicializacia;
  For i:= -1080 To 1080 Do
  Begin
    If i mod 90 <> 0 Then
    Begin
      x := Trunc(i*(Bulhar*Pi/180)+320);
      y := Trunc(Cos(i*Pi/180)/Sin(i*Pi/180)*Bulhar-240)*(-1);
      PutPixel(x, y, 4);
    End;
  End;
  ReadKey;
  CloseGraph;
  Menu;
End;

Procedure Secant;
Var i, x, y: Integer;
Begin
  Inicializacia;
  For i:= -1080 To 1080 Do
  Begin
    If i mod 90 <> 0 Then
    Begin
      x := Trunc(i*(Bulhar*Pi/180)+320);
      y := Trunc(1/Cos(i*Pi/180)*Bulhar-240)*(-1);
      PutPixel(x, y, 9);
    End;
  End;
  ReadKey;
  CloseGraph;
  Menu;
End;

Procedure KoSecant;
Var i, x, y: Integer;
Begin
  Inicializacia;
  For i:= -1080 To 1080 Do
  Begin
    If i mod 90 <> 0 Then
    Begin
      x := Trunc(i*(Bulhar*Pi/180)+320);
      y := Trunc(1/Sin(i*Pi/180)*Bulhar-240)*(-1);
      PutPixel(x, y, 14);
    End;
  End;
  ReadKey;
  CloseGraph;
  Menu;
End;

Procedure ArcTangens;
Var i, x, y: Integer;
Begin
  Inicializacia;
  For i:= -1080 To 1080 Do
  Begin
    If i mod 90 <> 0 Then
    Begin
      x := Trunc(i*(Bulhar*Pi/180)+320);
      y := Trunc(ArcTan(i*Pi/180)*Bulhar-240)*(-1);
      PutPixel(x, y, 6);
    End;
  End;
  ReadKey;
  CloseGraph;
  Menu;
End;

Procedure Vsetky;
Var i, x, y:integer;
Begin
  Inicializacia;
  For i:= -1080 To 1080 Do
  Begin
    x := Trunc(i*(Bulhar*Pi/180)+320);
    {sinus}
    y := Trunc(Sin(i*Pi/180+Pi)*Bulhar+240);
    PutPixel(x, y, 11);
    {kosinus}
    y := Trunc(Cos (i*Pi/180+Pi)*Bulhar+240);
    PutPixel(x, y, 12);

    If i mod 90 <> 0 Then
    Begin
      {tangens}
      y := Trunc(Sin(i*Pi/180)/Cos(i*Pi/180)*Bulhar-240)*(-1);
      PutPixel(x, y, 10);
      {kotangens}
      y := Trunc(Cos(i*Pi/180)/Sin(i*Pi/180)*Bulhar-240)*(-1);
      PutPixel(x, y, 4);
      {sekans}
      y := Trunc(1/Cos(i*Pi/180)*Bulhar-240)*(-1);
      PutPixel(x, y, 9);
      {kosekans}
      y := Trunc(1/Sin(i*Pi/180)*Bulhar-240)*(-1);
      PutPixel(x, y, 14);
      {arctangens}
      y := Trunc(ArcTan(i*Pi/180)*Bulhar-240)*(-1);
      PutPixel(x, y, 6);
    End;
  End;
  ReadKey;
  CloseGraph;
  Menu;
End;

Begin {zaciatok samotneho programu}
Bulhar := 50;
Repeat
 Menu;
 Case Ord(Readkey) Of
   83, 115: Sinus;
   75, 107: KoSinus;
   84, 116: Tangens;
   79, 111: KoTangens;
   69, 101: Secant;
   67,  99: KoSecant;
   82, 114: ArcTangens;
   71, 103: Vsetky;
   78, 110: Nastavenia;
 End;
Until Ord(Readkey) = 27;
End.







_________________
A. S. Tanenbaum píše:
The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.
Offline

Užívateľ
Užívateľ
Goniometrický guláš

Registrovaný: 28.04.07
Prihlásený: 03.11.09
Príspevky: 133
Témy: 1
Príspevok NapísalOffline : 21.05.2007 18:14

Úpravy:
-procedúra Menu sa dá podstatne zostručniť použitím proc. GotoXY(x, y: byte), ktorá nastavuje pozíciu kurzora
-Menu stačí volať v slučke, v ktorej sa spracúva vstup, aj to nie v každom prechode slučkou (a navyše stačí jedno ReadKey() )
-odstránené nepotrebné globálne premenné a cesta k BGI fontom pri InitGraph() (runtime error ak cesta neexistuje, afaik);
-Chr() má mať parameter s rozsahom typu byte (berie iba 'najspodnejší' bajt): Chr(442) -> Chr( (442 - 256) )
-skompilované pod freepascalom

ggx.exe

Kód:
Program GoniometrickyGulas;
Uses crt, graph;
Var
  Bulhar: longint;
  znak: char;
  prekresli_menu: boolean;

Procedure Menu;
const
  m_sirka = 40;
  m_vyska = 13;
  nc = 60;
Var
  i:byte;
Begin
  ClrScr;

  //vypis text
  gotoxy(1,5);
  Writeln('             Goniometricky              ':nc);
  Writeln('                Gulas                   ':nc);
  Writeln();
  writeln();
  Writeln('      [S]inus         [K]osinus         ':nc);
  Writeln('      [T]angens       K[o]tangens       ':nc);
  Writeln('      S[e]cant        Kose[c]ant        ':nc);
  Writeln('      A[r]custangens  [G]ulas!!!        ':nc);
  Writeln('      [ESC] - Koniec  [N]astavenia      ':nc);
  Writeln();
  Writeln('      (c)  Peter Kovac, 2007            ':nc);
 
  //nakresli ram
  //horiz
  for i:= 1 to m_sirka do
  begin
    gotoxy(i+20, 4);
    write(Chr(205));
    gotoxy(i+20, 4+m_vyska);
    write(Chr(205));
  end;
  //vert
  for i := 5 to 4+m_vyska do
  begin
    gotoxy(20, i);
    write(Chr(186));
    gotoxy(20+m_sirka, i);
    write(Chr(186));
  end;
  //decor
  gotoxy(20, 4);  //lt
  Write(Chr(201));
  gotoxy(20+m_sirka, 4);  //rt
  Write(Chr(187));
  gotoxy(20, 4+m_vyska);  //ld
  Write(Chr(200));
  gotoxy(20+m_sirka, 4+m_vyska); //rd
  Write(Chr(188));
End;

Procedure Nastavenia;
Begin
  ClrScr;
  Repeat
    Write('Nastav zvacsenie (rozsah 10-999, optimalne okolo 50): ');
    Readln(Bulhar);
  Until (Bulhar > 9) And (Bulhar < 1000);
End;

Procedure Inicializacia;
Var
  Gd, Gm: smallint;
  i, B: Integer;
Begin
  Gd:= 0;
  Gm:= 0;
  InitGraph(Gd, Gm, '');
  ClearDevice;
  SetColor(White);
  If GraphResult <> 0 Then Halt;
  Line(320, 0, 320, 480);
  Line(0, 240, 640, 240);
  SetColor(7);
  SetLineStyle(DottedLn, 0, NormWidth);
  Line(0, 240-Bulhar, 640, 240-Bulhar);
  Line(0, 240+Bulhar, 640, 240+Bulhar);
  SetColor(8);
  For i:= -10 To 10 Do
  Begin
    If i <> 0 Then
    Begin
      B:= Trunc(i*Pi*Bulhar/2);
      Line(320+B, 0, 320+B, 480);
    End;
  End;
End;

Procedure Sinus;
Var i, x, y: Integer;
Begin
  Inicializacia;
  For i:= -1080 To 1080 Do
  Begin
    x := Trunc(i*(Bulhar*Pi/180)+320);
    y := Trunc(Sin(i*Pi/180+Pi)*Bulhar+240);
    PutPixel(x, y, 11);
  End;
  ReadKey;
  CloseGraph;
End;

Procedure KoSinus;
Var i, x, y: Integer;
Begin
  Inicializacia;
  For i:= -1080 To 1080 Do
  Begin
    x := Trunc(i*(Bulhar*Pi/180)+320);
    y := Trunc(Cos(i*Pi/180+Pi)*Bulhar+240);
    PutPixel(x, y, 12);
  End;
  ReadKey;
  CloseGraph;
End;

Procedure Tangens;
Var i, x, y: Integer;
Begin
  Inicializacia;
  For i:= -1080 To 1080 Do
  Begin
    If i mod 90 <> 0 Then
    Begin
      x := Trunc(i*(Bulhar*Pi/180)+320);
      y := Trunc(Sin(i*Pi/180)/Cos(i*Pi/180)*Bulhar-240)*(-1);
      PutPixel(x, y, 10);
    End;
  End;
  ReadKey;
  CloseGraph;
End;

Procedure KoTangens;
Var i, x, y: Integer;
Begin
  Inicializacia;
  For i:= -1080 To 1080 Do
  Begin
    If i mod 90 <> 0 Then
    Begin
      x := Trunc(i*(Bulhar*Pi/180)+320);
      y := Trunc(Cos(i*Pi/180)/Sin(i*Pi/180)*Bulhar-240)*(-1);
      PutPixel(x, y, 4);
    End;
  End;
  ReadKey;
  CloseGraph;
End;

Procedure Secant;
Var i, x, y: Integer;
Begin
  Inicializacia;
  For i:= -1080 To 1080 Do
  Begin
    If i mod 90 <> 0 Then
    Begin
      x := Trunc(i*(Bulhar*Pi/180)+320);
      y := Trunc(1/Cos(i*Pi/180)*Bulhar-240)*(-1);
      PutPixel(x, y, 9);
    End;
  End;
  ReadKey;
  CloseGraph;
End;

Procedure KoSecant;
Var i, x, y: Integer;
Begin
  Inicializacia;
  For i:= -1080 To 1080 Do
  Begin
    If i mod 90 <> 0 Then
    Begin
      x := Trunc(i*(Bulhar*Pi/180)+320);
      y := Trunc(1/Sin(i*Pi/180)*Bulhar-240)*(-1);
      PutPixel(x, y, 14);
    End;
  End;
  ReadKey;
  CloseGraph;
End;

Procedure ArcTangens;
Var i, x, y: Integer;
Begin
  Inicializacia;
  For i:= -1080 To 1080 Do
  Begin
    If i mod 90 <> 0 Then
    Begin
      x := Trunc(i*(Bulhar*Pi/180)+320);
      y := Trunc(ArcTan(i*Pi/180)*Bulhar-240)*(-1);
      PutPixel(x, y, 6);
    End;
  End;
  ReadKey;
  CloseGraph;
End;

Procedure Vsetky;
Var i, x, y:integer;
Begin
  Inicializacia;
  For i:= -1080 To 1080 Do
  Begin
    x := Trunc(i*(Bulhar*Pi/180)+320);
    {sinus}
    y := Trunc(Sin(i*Pi/180+Pi)*Bulhar+240);
    PutPixel(x, y, 11);
    {kosinus}
    y := Trunc(Cos (i*Pi/180+Pi)*Bulhar+240);
    PutPixel(x, y, 12);

    If i mod 90 <> 0 Then
    Begin
      {tangens}
      y := Trunc(Sin(i*Pi/180)/Cos(i*Pi/180)*Bulhar-240)*(-1);
      PutPixel(x, y, 10);
      {kotangens}
      y := Trunc(Cos(i*Pi/180)/Sin(i*Pi/180)*Bulhar-240)*(-1);
      PutPixel(x, y, 4);
      {sekans}
      y := Trunc(1/Cos(i*Pi/180)*Bulhar-240)*(-1);
      PutPixel(x, y, 9);
      {kosekans}
      y := Trunc(1/Sin(i*Pi/180)*Bulhar-240)*(-1);
      PutPixel(x, y, 14);
      {arctangens}
      y := Trunc(ArcTan(i*Pi/180)*Bulhar-240)*(-1);
      PutPixel(x, y, 6);
    End;
  End;
  ReadKey;
  CloseGraph;
End;

Begin {zaciatok samotneho programu}
Bulhar := 50;
Menu;
Repeat
  prekresli_menu := true;
  znak := Readkey;
  Case Ord(znak) Of
    83, 115: Sinus;
    75, 107: KoSinus;
    84, 116: Tangens;
    79, 111: KoTangens;
    69, 101: Secant;
    67,  99: KoSecant;
    82, 114: ArcTangens;
    71, 103: Vsetky;
    78, 110: Nastavenia;
  else
    prekresli_menu := false
  End;
  if prekresli_menu then Menu;
Until Ord(znak) = 27;
End.


Offline

Užívateľ
Užívateľ
Goniometrický guláš

Registrovaný: 16.05.07
Prihlásený: 01.08.17
Príspevky: 837
Témy: 6
Príspevok NapísalOffline : 21.05.2007 19:34

imcold píše:
Úpravy:
ty si mu uplne donicil jeho program. to je proti pravidlam slusneho programovania.... Sak to mal dobre. ale v pohode inak ked mas readkey a stlacis nejaku funkcnu klavesu tak najprv nabehne #0 az na druhykrat sa vyhodnoti. a ten char si myslim ze to skor robi (x mod 256) nez (x-256) ale sak aj tak by sa to dalo, v tomto pripade.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.11.06
Prihlásený: 31.12.07
Príspevky: 677
Témy: 9
Príspevok NapísalOffline : 21.05.2007 19:46

preboha, babrať sa s grafiou v pascale? že vás to ešte baví..

btw: načo je ti tam procedúra všetky? stačí lepšie poriešiť inicializáciu a bude to efektivnejsie


Offline

Užívateľ
Užívateľ
Goniometrický guláš

Registrovaný: 28.04.07
Prihlásený: 03.11.09
Príspevky: 133
Témy: 1
Príspevok NapísalOffline : 23.05.2007 16:25

juho:
Citácia:
ty si mu uplne donicil jeho program.

lol. ktorú časť som úplne doničil? Skrátenie a podľa môjho názoru sprehladnenie procedúry Menu a odstránenie jej volania na miestach, kde to de facto nemá žiaden efekt? Odstránenie deklarácie nepoužívaných premenných, alebo absolútnej cesty k BGI fontom? O jedno volanie ReadKey menej (odstranuje jedno zbytočné stlačenie klávesy, ak chce človek vidieť inú funkciu)? Podstatné je podľa mňa práve to vykreslovanie, ktorého som sa ani nedotkol :P Cieľom môjho príspevku bolo navrhnúť zostručnenie tých menej podstatných vecí naokolo, a nie kompletný prepis - okrem menu zhruba 15 riadkov zmenených/odstránených.
Citácia:
to je proti pravidlam slusneho programovania....

Nepoznám tvoje pravidlá slušného programovania.
Citácia:
Sak to mal dobre.

Skutočne?
Citácia:
-Chr() má mať parameter s rozsahom typu byte (berie iba 'najspodnejší' bajt): Chr(442) -> Chr( (442 - 256) )

Citácia:
a ten char si myslim ze to skor robi (x mod 256) nez (x-256) ale sak aj tak by sa to dalo, v tomto pripade.

Mal som sa vyjadriť presnejšie: pri kompilovaní počas vyhodnocovania konštanty nastane "range check error" (keďže parameter procedúry je menšieho typu, aký je potrebný pre predanie konštanty procedúre), a namiesto celej konštanty sa do programu zapíše iba časť zodpovedajúceho rozsahu (viď generovaný kód) - to som myslel tým 'najspodnejším' bajtom. Tým Chr(442) -> Chr( (442 - 256) ) som myslel, že všetky hodnoty má posunuté o 256 - imho divné ;-) Takže žiadne mínus ani mod.
Btw. použitie Chr v skutočnosti negeneruje volanie funkcie.


audiotrack píše:
btw: načo je ti tam procedúra všetky? stačí lepšie poriešiť inicializáciu a bude to efektivnejsie

Ak sa pod efektivitu počíta zostručnenie a odstránenie duplicitného kódu, tak podľa môjho odhadu sa to dá zapísať pod 200 riadkov (oproti cca.300). Avšak to by už bol dosť velký zásah do programu, alebo skôr kompletný prepis, a to by asi p360t nebol rád :).


Offline

Skúsený užívateľ
Skúsený užívateľ
Goniometrický guláš

Registrovaný: 30.05.06
Prihlásený: 08.10.14
Príspevky: 1756
Témy: 35
Bydlisko: BA - WESTSIDE
Príspevok Napísal autor témyOffline : 23.05.2007 16:39

Heh, zaujímavá diskusia. Akékoľvek zmeny v tom programe sú podľa vášho gusta, veď preto som aj ukázal celý kód. Som rád, imcold, že si nejaké moje chyby odhalil a opravil.

K tej ceste ku BGI - bez nej mi to nefungovalo, bolo mi jasné, že to môže robiť problémy, ale pri výrobe toho programu mi nešlo až tak o výsledný produkt ako o vlastné zdokonalenie, takže podobné "chybičky krásy" (podobne ako s tým menu, kde ma neposlúchalo GoToXY) som ignoroval.

Hovorím, išlo mi hlavne o vlastné precvičenie sa, asi to nebol ideálny pokus, ale pokiaľ človek nejde so svojou kožou na trh, nič nové sa nedozvie.







_________________
A. S. Tanenbaum píše:
The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.
Offline

Užívateľ
Užívateľ
Goniometrický guláš

Registrovaný: 28.04.07
Prihlásený: 03.11.09
Príspevky: 133
Témy: 1
Príspevok NapísalOffline : 29.05.2007 13:57

S tou cestou ani s gotoxy ti neporadím, na taký problém som ešte nenarazil.

Citácia:
Hovorím, išlo mi hlavne o vlastné precvičenie sa, asi to nebol ideálny pokus, ale pokiaľ človek nejde so svojou kožou na trh, nič nové sa nedozvie.


tak potom moja verzia :) ggx + ggx.pas + graph_scrnshot.pas - narýchlo zostavený unit pre uloženie obrazovky z graph-u - ukážka toho, ako sa dá získať screenshot cez GetImage, keby si niekedy použil freepascal + graph. Taktiež nič ideálne, len som zvolil iný prístup: vykresľuje sa len v jednej funkcii, ostatné slúžia iba na výpočet y súradnice.


Offline

Užívateľ
Užívateľ
Goniometrický guláš

Registrovaný: 19.09.06
Prihlásený: 21.04.24
Príspevky: 749
Témy: 31
Bydlisko: Ružomberok&...
Príspevok NapísalOffline : 13.06.2007 8:17

Nechapem tej procedure menu, nebolo by jednoduchsie
procedure menu;
begin
clrscr;
writeln(' ╔════════════════════════════╗');
writeln(' ║ Goniometricky
writeln(' ║ Gulas
writeln(' ║.........
atd. az do konca tabulky.
end;


Odpovedať na tému [ Príspevkov: 8 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. HD 4850-mám z toho guľáš

v Grafické karty

27

1241

25.02.2009 18:47

Fizik Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  
cron

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra