Помощь - Поиск - Пользователи - Календарь
Полная версия: Графика
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
ko1hoz
Нужно сделать стрелу, движущуюся вокруг своей середины. Так вот, таким образом у меня получается только линия. Незнаю как сделать наконечник. Да и помойму тут можно как-то попроще написать. Подскажите пожалуйста.


 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.

ko1hoz
Что, никто не знает чтоли?)
Ozzя
Линия со стрелкой
Lapp
Вот, посмотри, я подправил..
Стрелку рисую линиями, полином убрал. Кроме того, исправил поворот. Короче, разбирайся. Но по-хорошему, нужно бы иначе..
uses crt,graph;
const
xn=320;
yn=200;
h=150;d=10;
var
xc,yc,gd,gm,i,j:integer;
xa,ya:word;
t:real;
x0,y0,x,y:array[1..4] of integer;

procedure Arrow(c:integer);
begin
SetColor©;
Line(x[1],y[1],x[2],y[2]);
Line(x[2],y[2],x[3],y[3]);
Line(x[2],y[2],x[4],y[4]);
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
Цитата(Lapp @ 12.05.2007 11:21) *


Спасибо большое.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.