Vanilla 1.1.5a jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.
Uses Graph;
Type TPunkt = record
x,y : Integer;
end;
procedure Bezier(A,B,C,D : TPunkt;Dodatki : Boolean);
var Odcinek,t,x,y : Real;
begin
t:=0;
Odcinek:=1/32;
MoveTo(A.x,A.y);
while t<=1 do
begin
x:=A.x*(1-t)*(1-t)*(1-t) + 3*B.x*t*Sqr(1-t) + 3*C.x*Sqr(t)*(1-t) + D.x*t*t*t;
y:=A.y*(1-t)*(1-t)*(1-t) + 3*B.y*t*Sqr(1-t) + 3*C.y*Sqr(t)*(1-t) + D.y*t*t*t;
LineTo(Round(x),Round(y));
t:=t+Odcinek;
if Dodatki then Bar(Round(x)-1,Round(y)-1,Round(x)+1,Round(y)+1)
end;
if Dodatki then
begin
LineTo(C.x,C.y);
LineTo(B.x,B.y);
LineTo(A.x,A.y);
Bar(B.x-1,B.y-1,B.x+1,B.y+1);
Bar(C.x-1,C.y-1,C.x+1,C.y+1)
end
end;
Const A : TPunkt = (x: 10;y:240);
B : TPunkt = (x:100;y: 50);
C : TPunkt = (x:350;y:100);
D : TPunkt = (x:600;y:400);
Var Sterownik,Tryb : Integer;
Begin
InitGraph(Sterownik,Tryb,'');
Bezier(A,B,C,D,True);
Readln;
CloseGraph
End.
Begin
NarysujTrojkąt;
WyczyscEkran;
NarysujOkrag;
end.
Uses GRAPH,CRT;
Var
ster,tryb:integer;
Begin
ster:=VGA; tryb:=VGAHi;
InitGraph(ster, tryb, 'C:\TP\BGI' );
Circle(320,240,40);
ClrScr;
Rectangle(320,240,40,40);
Repeat Until Keypressed;
CloseGraph;
End.
EDIT: już wiem w czym tkwi problem: CLRSCR jest to procedura do czyszczenia ekranu w trybie tekstowym, do trybu graficznego używamy CLearDevice . Zastosowałem również składnie DELAY co umożliwi zmiane figury. Moje starania do uzyskania trójkąta na razie nie przyniosi rezultatu. Jeszcze popracuje nad tym żeby te figury zmieniały sie cały czas , kóko w prostokąt, prostokąt w kółko itd itd. Czy któś mógłby mnie naprowadzić na własciwy trop....
Uses Crt,Graph;
Const Trojkat : array [0..3] of PointType = ((x:320;y:200),(x:280;y:260),
(x:360;y:260),(x:320;y:200));
Var Sterownik,Tryb : Integer;
Begin
InitGraph(Sterownik,Tryb,'c:\bp\bgi');
repeat
SetColor(White);
Circle(320,240,30);
Delay(1000);
SetColor(Black);
Circle(320,240,30);
SetColor(White);
DrawPoly(4,Trojkat);
Delay(1000);
SetColor(Black);
DrawPoly(4,Trojkat)
until KeyPressed;
CloseGraph
End.
!!! Uwaga efekt zaokrąglania rogów jest tylko i wyłącznie złudzeniem optycznym !!! : )
Od 1 do 15 z 15