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.