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

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

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

> Динамический список координат, Графика
xlr8
сообщение 2.06.2007 11:45
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 22
Пол: Мужской

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


Собственно написал вот такую программу. Шарик движется линейно между точками (x[i],y[i])..

Uses Graph,Crt,My;

Const N=10;

Type
TPoint=record
x:real;
y:real;
end;

p=array[1..N] of TPoint;

Var
Dot:p;
output:text;
i:integer;
x,y:real;

procedure draw;
Var a,b,c:real;
begin

Init_graph;

for i:=1 to N do
PutPixel(round(Dot[i].x),round(Dot[i].y),red);{отмечает маршрут}

{дальше собственно "анимация"..}
for i:=1 to N-1 do
begin
x:=Dot[i].x;
if Dot[i].x<Dot[i+1].x then
begin
repeat
x:=x+1;
a:=x*Dot[i+1].y-x*Dot[i].y-Dot[i].x*Dot[i+1].y+Dot[i].x*Dot[i].y;
b:=Dot[i+1].x*Dot[i].y-Dot[i].x*Dot[i].y;
c:=Dot[i+1].x-Dot[i].x;
y:=(a+b)/c;
Drawcircle(round(x),round(y),green);
delay(2600);
Drawcircle(round(x),round(y),white);
until x>=Dot[i+1].x;
end
else
begin
repeat
x:=x-1;
a:=x*Dot[i+1].y-x*Dot[i].y-Dot[i].x*Dot[i+1].y+Dot[i].x*Dot[i].y;
b:=Dot[i+1].x*Dot[i].y-Dot[i].x*Dot[i].y;
c:=Dot[i+1].x-Dot[i].x;
y:=(a+b)/c;
Drawcircle(round(x),round(y),green);
delay(2600);
Drawcircle(round(x),round(y),white);
until x<=Dot[i+1].x;
end;
end;
readkey;
end;

{main program}
BEGIN
clrscr;
randomize;

{вводим координаты точек}
for i:=1 to N do
begin
Dot[i].x:=round(random(640));
Dot[i].y:=round(random(480));
end;
draw;
END.


А вопрос то - помогите алгоритмом работы такой программы, только с использованием динамического списка этих самых точек.
Объясните,пожалуйста, каким способом обращатся к данным из (как я понимаю) динамического списка записей.
Заранее спасибо.

Сообщение отредактировано: xlr8 - 2.06.2007 11:47
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
xlr8   Динамический список координат   2.06.2007 11:45
Ozzя   Тут прочитал как решать товю задачу?   2.06.2007 13:17
xlr8   Будем разбиратся..Спасибо   2.06.2007 18:48
xlr8   Просмотрите...правильно ли я всё сделал? (программ...   2.06.2007 20:09
Артемий   Извини, а можно присоеденить модуль My? А то знаеш...   2.06.2007 20:15
volvo   xlr8, динамический список где? Массив вижу, списка...   2.06.2007 20:32
xlr8   Вот модуль My..но он совсем не суть.. volvo, задан...   2.06.2007 21:47
volvo   И динамического массива здесь тоже нет... Понимаеш...   2.06.2007 22:07
xlr8   Uses Graph,Crt,My; Type point=^tpoint; tp...   3.06.2007 9:54
Чужак   Вопрос: обязательно использовать массивы, файлы, д...   3.06.2007 12:55
xlr8   Задачу нужно решить применив двунаправленый список...   5.06.2007 18:21
volvo   Вот набросок: uses crt, graph; type plist = ^tli...   5.06.2007 18:56
xlr8   Спасибо огромное! :)   5.06.2007 20:12
xlr8   procedure delete_elem(i:byte); var nav,p1,p2...   14.06.2007 8:49
volvo   Может, в том, что элементы считаются у тебя с НУЛЯ...   14.06.2007 8:54


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

 



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