Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 16.12.2008
Сообщений: 15
1

Изобразить на экране “движущийся” отрезок, траекторией которого является четырехугольник.

16.12.2008, 12:50. Показов 1558. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Изобразить на экране “движущийся” отрезок, траекторией которого является четырехугольник. Учесть, что размер отрезка должен сохраняться в углах четырехугольника, т.е. в углах он типо как змейка изгибаться должен.

Очень охота экзамен автоматом получить))) Помогите пожалуйста, не то хана.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.12.2008, 12:50
Ответы с готовыми решениями:

Изобразить на экране отрезок, вращающийся в плоскости экрана вокруг точки, делящей отрезок в отношении 1:3
Изобразить на экране отрезок, вращающийся в плоскости экрана вокруг точки, делящей отрезок в...

Изобразить на экране движущийся объект
Разработать и программно реализовать алгоритм создания движущегося графического объекта на экране с...

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

Изобразить на экране отрезок, вращающийся в плоскости экрана вокруг своей середины
Изобразить на экране отрезок, вращающийся в плоскости экрана вокруг своей середины.

14
2 / 2 / 0
Регистрация: 15.12.2008
Сообщений: 37
16.12.2008, 12:55 2
Попробую, нада подумать. Может напишу))

Добавлено через 1 минуту 53 секунды
Итак, вроде появляются мысли...
Нужно знать вот что: параметры четырёхугольника и длину отрезка.
0
Администратор
83618 / 52196 / 244
Регистрация: 10.04.2006
Сообщений: 13,426
16.12.2008, 12:57 3
Цитата Сообщение от Иван Ридаль Посмотреть сообщение
Нужно знать вот что: параметры четырёхугольника и длину отрезка.
Ну так получи вводом
0
2 / 2 / 0
Регистрация: 15.12.2008
Сообщений: 37
16.12.2008, 12:58 4
Ну хорошо... Щас, дайте сообразить.
0
1 / 1 / 0
Регистрация: 16.12.2008
Сообщений: 15
16.12.2008, 12:58  [ТС] 5
Длина, не важно, ну например 20-40.
Ну параметры прямоугольника: левый верхний угол 2,2, и правый нижний, ну допустим, 638,478. примерно так
0
2 / 2 / 0
Регистрация: 15.12.2008
Сообщений: 37
16.12.2008, 13:00 6
(ещё надо редактировать)
(у мя бред получился! мозги кипят! )
Код
program otrezok;
uses crt,graph;
var x1,y1,x2,y2,dlina:integer;
kusok1,kusok2:integer;
gd,gm:integer;
nexvat:integer;
shag:integer;
begin
dlina:=30;
x1:=2; y1:=2; x2:=638; y2:=478;
initgraph(gd,gm,'');
kusok1:=dlina;
kusok2:=0;
nexvat:=x2-x1-dlina;
shag:=1;
repeat
{пока только виртуальная часть}
 
if shag=1 then begin
nexvat:=y2-y1-dlina;
if nexvat=0 then shag:=2;
end;
 
if shag=2 then begin
nexvat:=x2-x1-dlina;
if nexvat=0 then shag:=2;
end;
 
if shag=3 then begin
nexvat:=y2-y1-dlina;
if nexvat=0 then shag:=4;
end;
 
if shag=4 then begin
nexvat:=x2-x1-dlina;
if nexvat=0 then shag:=1;
end;
 
until keypressed;
closegraph;
end.
0
1 / 1 / 0
Регистрация: 16.12.2008
Сообщений: 15
17.12.2008, 12:15  [ТС] 7
и у меня кипят((( уже неделю мучаюсь

Добавлено через 20 часов 45 минут 57 секунд
получается? Просто не знаю кто мне ещё поможет
0
Of Wolf and Man
999 / 198 / 5
Регистрация: 09.07.2008
Сообщений: 1,784
17.12.2008, 12:21 8
а я не парился сделал объект змейки в котором был динамический список элементов змейки с координатами (х,у) и при движении , начиная с последнего , присваивать всем элементам координаты предыдущего. А самому первому меняем координату на нужную.
0
1 / 1 / 0
Регистрация: 16.12.2008
Сообщений: 15
17.12.2008, 12:23  [ТС] 9
чото мозг не воспринимает твоего поста))) может у тебя исходник остался??
0
Of Wolf and Man
999 / 198 / 5
Регистрация: 09.07.2008
Сообщений: 1,784
17.12.2008, 12:42 10
Код
{sozdayom dinamicheskiy spisok}
type 
    segp = ^segment;
    segment = record
    x,y:integer; {koordinati tochki ili kuska zmeyki}
    next,prev:segp;
    end;
    
zmeya = object
   begg, endd, curr :segp; {ukazateli na nachalniy, konechniy i tekushiy element spiska}
   {metodi obrabotki (dvizjeniya i.t.d}
end;
выводишь все эл-ты точками.
после этого берешь последний элемент и присваиваешь ему координаты предпоследнего.
то же самое с предпоследним.
и так далее до 2го, которому присваиваются координаты первого элемента.
а первый элемент сдвигаешь так как тебе надо .
0
1 / 1 / 0
Регистрация: 16.12.2008
Сообщений: 15
17.12.2008, 12:46  [ТС] 11
я имел ввиду полную программу, а не кусок)))
0
Of Wolf and Man
999 / 198 / 5
Регистрация: 09.07.2008
Сообщений: 1,784
17.12.2008, 12:56 12
полную долго ) у меня времени нет... я на работе. если освобожусь - напишу.
а вообще если знаешь как работать со списками - сам можешь написать.

Добавлено через 5 минут 13 секунд
вообще вот.
Это без динамики т.е. где не надо наращивать твою "змейку"
Код
type 
a = record
x,y: integer;
end;

var arr: array [1..8] of a;
i:integer;



begin
{zapolnenie}
for i:=1 to 8 do begin arr[i].x:=10+i; arr[i].y:=20; end;

{peremeshenie}
for i:=8 to 2 do begin arr[i].x:=arr[i-1].x; arr[i].y:=arr[i-1].y; end;
arr[1].x:=arr[1].x +- 1 ; {smotrya kuda dvigat nachalo otrezka po gorizontali}
arr[1].y:=arr[1].y +- 1 ; {smotrya kuda dvigat nachalo otrezka po verticali}
{------------}
end.
0
1 / 1 / 0
Регистрация: 16.12.2008
Сообщений: 15
17.12.2008, 15:34  [ТС] 13
списки ты имеешь ввиду записи? я их очень давно проходил, а КОНЬспекты не писал, поэтому я не смогу с твоим куском ничего сделать((( в общем мне надо до воскресенья сделать, если успеешь напиши пожалуйста. просто я ваще уже не знаю чо делать. мне дали 4 задачи, если я их решу, мне автоматом ставят экзамен. остальные 3 я уже сделал, показал преподу, а вот с этой заминка вышла.

Добавлено через 45 минут 38 секунд
всем спасибо, кто пытался мне помочь! мне случайно попался батя Паскаля, который написал её за 10 минут. но вам всё равно спасибо.
P.S. кому интересно, могу скинуть код
0
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
17.12.2008, 15:47 14
ну яви уже код бати паскаля
0
1 / 1 / 0
Регистрация: 16.12.2008
Сообщений: 15
18.12.2008, 08:50  [ТС] 15
program otrezok;
uses graph, crt;
var
x, y, x1, y1, x2, y2, len : word;
gd, gm : integer;

procedure draw( x, y, len : word);
begin
if (x = x1) then begin
if (y2 - y > len) then line(x, y, x, y + len)
else begin line( x, y, x, y2 ); line(x1, y2, x1 + (len - y2 + y), y2); end
end;
if (x = x2) then begin
if (y - y1 > len) then line(x, y, x, y - len)
else begin line(x, y, x, y1); line(x2, y1, x2 - (len - y + y1 ), y1); end;
end;
if (y = y1) then begin
if (x - x1 > len) then line(x, y, x - len, y)
else begin line(x, y, x1, y); line(x1, y1, x1, y1 + (len - x + x1)); end;
end;
if (y = y2) then begin
if (x2 - x > len) then line(x, y, x + len, y)
else begin line(x, y, x2, y); line(x2, y2, x2, y2 - (len - x2 + x)); end;
end;
end;

begin
write ('koordinati 1 ugla (x,y): ');
readLn( x1, y1);
write ('koordinati 2 ugla (x,y): ');
readln (x2, y2);
write ('dlina otrezka: ');
readLn(len);
initgraph(gd, gm, 'd:\enjoy\soft\bgi');
setColor (white);
x := x1; y := y1;
repeat
delay(1500);
setColor(black);
draw(x, y, len);
if (x = x1) then if (y = y1) then x := x + 1
else y := y - 1
else if (x = x2) then if (y = y2) then x := x - 1
else y := y + 1
else if (y = y1) then x := x + 1
else x := x - 1;
setColor(white);
draw(x, y, len);
until (keypressed);
closeGraph;
end.
0
18.12.2008, 08:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.12.2008, 08:50
Помогаю со студенческими работами здесь

Изобразить на экране отрезок, вращающийся в плоскости экрана вокруг своей середины
Изобразить на экране отрезок, вращающийся в плоскости экрана вокруг своей середины. При этом центр...

Изобразить на экране отрезок, вращающийся в плоскости экрана вокруг своего конца
Всем буду презнателен за помощь! Нужно 1) Построить семейство кривых y = f(x) для ...

Графика.Изобразить на форме отрезок, цвет которого плавно меняется
Изобразить на форме отрезок, цвет которого плавно меняется.

Изобразить на экране круг, движущийся по окружности с угловой скоростью, управляймой клавишами ">" и "<".
1.Изобразить на экране круг, движущийся по окружности с угловой скоростью, управляймой клавишами...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru