| | |
| Stránka: 1 z 1
| [ Príspevkov: 3 ] | |
Autor | Správa |
---|
Registrovaný: 30.05.06 Prihlásený: 08.10.14 Príspevky: 1756 Témy: 35 Bydlisko: BA - WESTSIDE | Napísal p360t: 17.05.2007 21:07 | |
|
Ahojte,
mám taký netradičný problém - potrebujem screenshot obrazovky z pascalu - presnejšie screenshot grafického výstupu (knižnica Graph). Niečo som našiel, ale nejako to nefunguje.
Ten výstup je vlastne riešením zadania jedného maturitného dôkazu, s ktorým si trošku nevieme rady, tak som to skúsil cez Pascal - niečo z toho vyšlo, ale treba to ešte dať do nejakého normálnejšieho formátu.
Zadanie znie:
Vyšetrite množinu všetkých bodov X v rovine, pre ktoré platí |AX| : |BX| = 3. A a B sú ľubovoľné zadané rôzne body.
Ten útvar neviem pomenovať, len opísať - predstavte si vajce uvarené natvrdo a pozdĺžne rozrezané - tou množinou je len to vaječné bielko
A keby niekto chcel, môže si to vyskúšať (a skontrolovať ma, či to je OK):
Kód: {najdite vsetky body X pre ktore |AX| : |BX| = 3} Program Mnozina; Uses Crt, Graph; Const A1 = 1*3; A2 = 240; B1 = 141*3; B2 = 240; Opakovanie = 2000; Koef = 3; Var X1, X2, i, j, citatel, menovatel :longint; Procedure Inicializacia; Var Gd, Gm :Integer; Begin Gd:= 0; Gm:= 0; InitGraph(Gd, Gm, 'C:\TP7\BGI\'); ClearDevice; SetColor(White); If GraphResult <> 0 Then Halt; {body} SetColor(4); Circle(A1, A2, 3); SetFillStyle(1, 4); FloodFill(A1, A2, 4); SetColor(3); Circle(B1, B2, 3); SetFillStyle(1, 3); FloodFill(B1, B2, 3); End;
Begin Inicializacia; For i:= 1 To Opakovanie Do Begin For j:= 1 To Opakovanie Do Begin
X1 := i*Koef; X2 := j*Koef; {vzorec pre vzdialenost 2 bodov: citatel je |AX|, menovatel |BX|} citatel := Trunc(Sqrt(Sqr(X1-A1)+Sqr(X2-A2))); menovatel := Trunc(Sqrt(Sqr(X1-B1)+Sqr(X2-B2))); If menovatel <> 0 Then If Trunc(citatel/menovatel) = 3 Then Begin PutPixel(X1, X2, 14); End;
End; End; ReadKey; End.
EDIT: trochu som upravil ten kód a výsledkom je zrazu kružnica mala by byť presnejšia. Kód: {najdite vsetky body X pre ktore |AX| : |BX| = 3} Program Mnozina; Uses Crt, Graph; Const A1 = 10; A2 = 240; B1 = 50; B2 = 240; Opakovanie = 2000; Koef = 1; Var X1, X2, i, j :longint; citatel, menovatel :real; Procedure Inicializacia; Var Gd, Gm :Integer; Begin Gd:= 0; Gm:= 0; InitGraph(Gd, Gm, 'C:\TP7\BGI\'); ClearDevice; SetColor(White); If GraphResult <> 0 Then Halt; {body} SetColor(4); Circle(A1, A2, 3); SetFillStyle(1, 4); FloodFill(A1, A2, 4); SetColor(3); Circle(B1, B2, 3); SetFillStyle(1, 3); FloodFill(B1, B2, 3); End;
Begin Inicializacia; For i:= 1 To Opakovanie Do Begin For j:= 1 To Opakovanie Do Begin
X1 := i*Koef; X2 := j*Koef;
citatel := Sqrt(Sqr(X1-A1)+Sqr(X2-A2)); menovatel := Sqrt(Sqr(X1-B1)+Sqr(X2-B2)); If menovatel <> 0 Then If citatel/menovatel = 3 Then Begin PutPixel(X1, X2, 14); End; End; 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. |
|
Registrovaný: 17.11.06 Prihlásený: 31.12.07 Príspevky: 677 Témy: 9 |
neviem či som dobre pochopil, ani som si nepozeral tvoj algoritmus a skúsil som niečo spraviť. Tiež mi to dáva kružnicu, tak si to pozri. Ako exportneš screen z pascalu neviem, ak to potrebuješ odovzdať vo forme obrázku, môžeš použiť export z môjho programu (menu vyvoláš pravým tlačidlom)
link: project1.rar - 0.18MB
Môžeš si tam pre prehladnosť aj pomeniť farby, a zaujimavé je sledovať ten priebeh so zmenami hodnôť. čím vyššie číslo, tým je kružnica trhanejšia, na jednotke to dáva úplne iný tvar a so záporními nič nevykreslí
//edit: to čo si našiel (getimage) je procedúra ktorá sa používa pri grafike. nejde o výstup na tlačiareň alebo do súboru, len do virtuálnej premennej zloženej z veľkého dvojrozmerného poľa farieb. Vlastne ti zachytí časť obrazovky definovanú argumentami a tú časť môžeš prilepiť niekde inde. Používa sa to pri rozpohybovaní objektov, ale to je na dlho
//edit2: pozerám že už bežne používať unit graph a celkom sa ti to zapáčilo
//edit3: práve som zbadal, že pri čiernom pozadí ti nevykreslí prvý bod a prefarbí pozadie.. je tam bug nechce sa mi to opravovať, nedávaj čierne pozadie
|
|
Registrovaný: 17.11.06 Prihlásený: 31.12.07 Príspevky: 677 Témy: 9 | |
| Stránka: 1 z 1
| [ Príspevkov: 3 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| infanview - ako na screenshot v Ostatné programy | 0 | 792 | 01.07.2007 22:55 Marosh | | Návod: Ako si spravit doma zmrzlinu original ako z obchodu? v Jedlo, pitie a varenie | 7 | 4084 | 22.08.2009 15:55 david3504 | | ako spravne zapojit 4 ohmovy subak do 8 ohmoveho vystupu? v Elektronika | 11 | 781 | 02.12.2012 2:53 AdrianVAIO | | Ako to spravit ? v Siete | 1 | 537 | 18.08.2008 22:32 shiro | | ako si to spraviť? v Redakčné systémy | 1 | 543 | 13.06.2007 17:23 Flety | | Ako spravit preklikavaci obsah v JavaScript, VBScript, Ajax | 1 | 435 | 04.09.2012 22:13 emer | | ako to mam spravit?? v Počítačové hry | 9 | 947 | 08.07.2007 14:07 rado1121 | | Ako najrýchlejšie spraviť komentáre? v Ostatné | 1 | 701 | 09.12.2009 20:07 tomxi | | Ako spravit fake index ? v PHP, ASP | 6 | 911 | 04.09.2008 22:58 matto71 | | Ako spravit galeriu obrazkov v JavaScript, VBScript, Ajax | 0 | 495 | 27.02.2010 15:47 Pades | | ako spravit nieco taketo??? v JavaScript, VBScript, Ajax | 7 | 967 | 06.02.2009 14:31 max-m | | Ako spraviť web server v Ostatné | 10 | 2707 | 16.09.2017 22:40 ejv | | ako spravit www - FAQ... v HTML, XHTML, XML, CSS | 2 | 1197 | 20.11.2006 19:58 Kcnk | | Ako spraviť editovateľný footer? v Redakčné systémy | 7 | 731 | 04.07.2012 23:47 m1roslav | | ako spraviť diskusné forum v Redakčné systémy | 1 | 683 | 28.05.2007 20:14 JanoF | | ako spravit z wifi lan v Siete | 16 | 2279 | 31.12.2021 17:02 4040 |
| 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
|
|