Нужно сделать стрелу, движущуюся вокруг своей середины. Так вот, таким образом у меня получается только линия. Незнаю как сделать наконечник. Да и помойму тут можно как-то попроще написать. Подскажите пожалуйста.
uses crt,graph; const xn=320; yn=200; h=150;d=0; var xc,yc,gd,gm,i,j:integer; xa,ya:word; t:real; x,y:array[1..5] of integer; p:array[1..5] of pointtype; begin clrscr; gd:=detect; initgraph (gd,gm,'D:\TP\BGI'); rectangle(xn,yn,xn+d,yn+h); delay(2000); cleardevice; x[1]:=xn; y[1]:=yn; x[2]:=xn+d; y[2]:=yn; x[3]:=xn+d; y[3]:=yn+h; x[4]:=xn; y[4]:=yn+h; x[5]:=x[1]; y[5]:=y[1]; xc:=xn; yc:=yn+75; getaspectratio (xa,ya); for j:=1 to 180 do begin t:=10*j*pi/180; for i:=1 to 5 do begin P[i].x:=xc+round((x[i]-xc)*cos(t)+(y[i]-yc)*sin(t)*ya/xa); P[i].y:=yc+round((y[i]-yc)*cos(t)+(x[i]-xc)*sin(t)*xa/ya); end; drawpoly (5,p); delay(10000); cleardevice; end; readln; closegraph; end.
begin clrscr; gd:=detect; initgraph (gd,gm,''); delay(100); cleardevice; x0[1]:=xn; y0[1]:=yn; x0[2]:=xn; y0[2]:=yn+h; x0[3]:=xn+d; y0[3]:=yn+h-d; x0[4]:=xn-d; y0[4]:=yn+h-d; xc:=xn; yc:=yn+75; getaspectratio (xa,ya); for j:=1 to 180 do begin Arrow(White); Delay(100); Arrow(Black); t:=10*j*pi/180; for i:=1 to 4 do begin x[i]:=xc+round((x0[i]-xc)*cos(t)-(y0[i]-yc)*sin(t)); y[i]:=yc+round((x0[i]-xc)*sin(t)+(y0[i]-yc)*cos(t)); end; end; readln; closegraph; end.
ko1hoz
12.05.2007 18:19
Цитата(Lapp @ 12.05.2007 11:21)
Спасибо большое.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.