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

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

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

> Динамический список координат, Графика
сообщение
Сообщение #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 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 





- Текстовая версия 29.03.2024 13:17
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name