IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Графика, Движущаяся стрела
ko1hoz
сообщение 11.05.2007 16:23
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


Нужно сделать стрелу, движущуюся вокруг своей середины. Так вот, таким образом у меня получается только линия. Незнаю как сделать наконечник. Да и помойму тут можно как-то попроще написать. Подскажите пожалуйста.


 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.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Lapp
сообщение 12.05.2007 7:21
Сообщение #2


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Вот, посмотри, я подправил..
Стрелку рисую линиями, полином убрал. Кроме того, исправил поворот. Короче, разбирайся. Но по-хорошему, нужно бы иначе..
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.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 25.06.2025 12:48
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"