Obsah fóra
PravidláRegistrovaťPrihlásenie




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

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

Registrovaný: 12.05.07
Prihlásený: 25.01.10
Príspevky: 23
Témy: 9
Príspevok NapísalOffline : 12.05.2007 20:58

no potrebujem helpa opat Napíšte algoritmus, ktorý nakreslí graf funkcie y = sin x najskôr inicializuj grafiku (unit Graph) použite cyklus a funkciu PutPixel
nezabudnite, že obrazovka má rozmery 640x480 a funkcia sínus nadobúda
hodnoty <-1;1> .


Offline

Skúsený užívateľ
Skúsený užívateľ
pascal 4 2nd

Registrovaný: 30.05.06
Prihlásený: 08.10.14
Príspevky: 1756
Témy: 35
Bydlisko: BA - WESTSIDE
Príspevok NapísalOffline : 13.05.2007 9:03

Až na to inicializovanie jednotky Graph by som to vedel (použil som Grafiku).
Kód:
Program Sinus;
Uses Crt, Grafika;
Var x, y, i: integer;
    z: real;
Begin
ClrScr;

SetColor(black);
FilledRectangle(0, 0, 640, 480);
SetColor(white);
Line(0, 240, 640, 240);
Line(275, 0, 275, 480);
For x:= -275 To 365 Do
Begin
     {sinus}
     z:= Sin(x*Pi/180);
     y:= Trunc(100*z);
     PutPixel(275+x,240-y, Red);
End;

ReadKey;
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ľ
Obrázok užívateľa

Registrovaný: 12.05.07
Prihlásený: 25.01.10
Príspevky: 23
Témy: 9
Príspevok Napísal autor témyOffline : 13.05.2007 10:44

nzd v com si to robil? v pascale mi to nechce spustit


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 : 13.05.2007 10:50

zrejme máš iné knižnice na grafiku


Offline

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

Registrovaný: 12.05.07
Prihlásený: 25.01.10
Príspevky: 23
Témy: 9
Príspevok Napísal autor témyOffline : 13.05.2007 10:57

no neviem o nicom z pascalu kde je FilledRectangle nenasiel som ho ani v helpe


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 : 13.05.2007 11:00

Fillrectangle, line a iné sú príkazy na prácu s grafikou (Fillrectangle nakreslí obdlžnik daných súradnic s predom definovanou farbou cez setcolor)
Ak si nepripojil danú knižnicu (alebo sa volá inak a pripojil si inú) tak ti tieto príkazy nepôjdu. A keďže to nie sú štandartné príkazy samotného pascalu, tak nie sú ani v helpe


Offline

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

Registrovaný: 12.05.07
Prihlásený: 25.01.10
Príspevky: 23
Témy: 9
Príspevok Napísal autor témyOffline : 13.05.2007 11:02

ale kniznica grafika by mi mala ist divno


Offline

Skúsený užívateľ
Skúsený užívateľ
pascal 4 2nd

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

Ono ten FilledRectangle je tam len na to, že keď do programu zapojím Grafiku a napíšem ClrScr (tj vymazanie obsahu obrazovky a kurzor do ľavého horného rohu), tak to tam spraví taký škaredý šedý obdĺžnik. Neviem prečo, ale toto je najjednoduchšie riešenie, ako sa toho zbaviť. Takže, ak ho tam nedáš, nakreslí sa ti to rovnako, len budeš mať šedý podklad (teda aspoň ja ho mám).

Potom najkreslí osi x a y, ten stred má preto také súradnice, aby sa na kladnú časť osi x zmestila celá perióda a na zápornú čo najviac (tuším to je 1,5 periódy). Preto je aj cyklus for pre x od -275 do +365 (-275° je -1,5Pi aj niečo a +365° je +2Pi aj niečo).

Následne sa vypočíta sínus - v Pascali je funkcia sínus pre radiány, takže to prehodíš (to je ten vzorec x*Pi/180) a dostaneš reálne číslo. Aby si ho vedel previesť do tohoto príkladu, vynásobíš ho stovkou a odstrániš desatinú časť (y:= Trunc(100*z)).

Nakoniec nakreslíš každý jeden bod, keďže stred súradnicovej sústavy nie je v bode [0; 0], ale v bode [275; 240], musíš aj tie súradnice adekvátne upraviť.

Ak by som vedel rozbehať Graph, tak by som to robil v tom, ale žiaľ nepodarilo sa a netuším prečo (vlastne netuším AKO sa to robí, niekto by mohol pomôcť, čo ty na to, audiotrack? ;) ).







_________________
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ľ
Obrázok užívateľa

Registrovaný: 17.11.06
Prihlásený: 31.12.07
Príspevky: 677
Témy: 9
Príspevok NapísalOffline : 13.05.2007 14:23

Kód:
Program nieco;
uses graph;
 
var
 gd,gm : integer;
 
begin
 detectgraph(gd,gm);
 InitGraph(Gd, Gm, '');
 rectangle(270,200,370,400);
 line(270,200,300,150);
 .
 .
 .
 closegraph;
end.

Inicializovať to môžeš manuálne, ja si dávam zistiť optimálne hodnoty do dvoch premenných typu integer ktoré potom použijem pri inicializácii.

môžeš sa s tým aj trošku viac pohrať:
Kód:
 if RegisterBGIdriver(@egavga_dr) < 0 then ErrCode:=1;
 gd:=9;gm:=1;
 initgraph(gd,gm,'');
 ErrCode := GraphResult;
 if not(ErrCode = grOk) then begin
     WriteLn('Chyba inicializacie grafiky:',GraphErrorMsg(ErrCode));
     halt(1);
    end;


prípadne takto nejak:
Kód:
  Gd:=Detect;
  Initgraph(Gd,Gm,'');
  ErrorCode := GraphResult;
 
  { vznikla chyba pri inicializacii }
  if ErrorCode <> grOk then
  begin
    Writeln('Chyba grafiky: ', GraphErrorMsg(ErrorCode));
    Halt(1);
  end;
ale to už je o inom, také veci ti asi netreba :)
viac o dvoch spomínaných funkciách ktoré sú alfa a omega (skôr len alfa) pri tejto knižnici nájdeš tu:
http://www.freepascal.org/docs-html/rtl ... graph.html
http://www.freepascal.org/docs-html/rtl ... graph.html


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


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. iPod shuffle 2nd gen.

v Elektronika

0

458

29.04.2012 23:42

Trty Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. I/P: Focusrite Scarlett Solo (2nd Gen)

v Predám

0

354

23.02.2018 14:38

Corduroy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Free Pascal a Turbo Pascal

v Assembler, C, C++, Pascal, Java

0

385

19.12.2014 13:18

Styracoz Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pascal

v Assembler, C, C++, Pascal, Java

7

632

09.10.2011 21:30

F3RY Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. pascal

v Assembler, C, C++, Pascal, Java

11

1289

07.04.2007 16:50

programator Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. pascal

v Assembler, C, C++, Pascal, Java

19

3060

30.04.2007 19:54

nikita Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pascal

v Assembler, C, C++, Pascal, Java

7

832

14.05.2011 20:04

F3RY Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. pascal

v Assembler, C, C++, Pascal, Java

2

573

24.06.2010 20:17

KatjushaMan Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. pascal...

v Assembler, C, C++, Pascal, Java

5

906

18.10.2008 19:02

redog Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pascal

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Assembler, C, C++, Pascal, Java

40

1472

11.12.2016 22:08

viki Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. pascal

v Assembler, C, C++, Pascal, Java

2

1106

09.03.2007 14:08

misolax Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. pascal

v Assembler, C, C++, Pascal, Java

6

731

08.01.2009 17:45

majka090 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. pascal

v Assembler, C, C++, Pascal, Java

0

703

03.05.2009 12:35

ebb Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pascal

v Assembler, C, C++, Pascal, Java

4

2066

01.03.2018 8:02

MTK Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. pascal diagram

v Assembler, C, C++, Pascal, Java

7

784

14.01.2009 16:01

dsljohn Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. turbo pascal

v Assembler, C, C++, Pascal, Java

10

571

08.05.2013 21:06

Gregi555 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:  

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