Форум программистов, компьютерный форум, киберфорум
Наши страницы

Pascal ABC

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
Mr.Amsterdam
0 / 0 / 0
Регистрация: 10.12.2010
Сообщений: 8
#1

Графика: Движение точки вокруг квадрата - Pascal ABC

08.10.2011, 08:14. Просмотров 2005. Ответов 12
Метки нет (Все метки)

Здраствуйте. Никак неполучается написать программу в которой бы точка двигалась вокруг квадрата.
Нижний левый угол квадрата нужно взять за начало откуда будет двигаться точка,потом вводим 3 переменные,первая опускает току на "x" вниз,вторая на "y" вправо и третья на "c" вверх. Пытался сделать но получился какой то ужас вроде этого. Если нетрудно помогите или посоветуйте как сделать.


Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
uses graphabc,crt;
var g,i,b:integer;
begin
setwindowsize(1000,1000);
  LockDrawing;
  for g:=450 to 600 do
  begin
 clearWindow;
    Rectangle (400,400,250,250);
    SetBrushColor(clblack);
    circle(i,g,50);
    Redraw;
    Sleep(1);
  end;
  for i:=100 to 500 do
  begin
  clearwindow;
  Rectangle (400,400,250,250);
    SetBrushColor(clblack);
    circle(g,i,20);
    redraw;
    sleep(1);
    end;
    for b:=100 to 500 do
    begin
 clearWindow;
    Rectangle (400,400,250,250);
    SetBrushColor(clblack);
    circle(b,g,20);
    Redraw;
    Sleep(1);
end;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2011, 08:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Графика: Движение точки вокруг квадрата (Pascal ABC):

Построить окружность, описанную вокруг квадрата и вычислить ее площадь - Pascal ABC
Даны два файла вещественных чисел. В файле x.dat хранятся координаты точек по оси Ox, в файле y.dat – координаты точек по оси Oy (не менее...

Написать программу для описанной окружности вокруг квадрата - Pascal ABC
написать программу для описанной окружности вокруг квадрата и вписанной окружности в квадрат

Движение квадрата. - Pascal
Помогите пожалуйста с задачкой. Составить программу для построения на экране квадрата.Предусмотреть движение квадрата в четыре стороны по...

Движение Квадрата по Прямоугольнику - Pascal ABC
Добрый вечер! :) Помогите создать программу, демонстрирующую движение квадрата по прямоугольнику)

Изобразить движение шарика в области квадрата - Pascal ABC
Дан квадрат, разделенный на две части линией. В нижней части бегает шарик. Нужно сделать так, чтобы наверху бегал второй. Но что бы не...

Изобразить движение планеты вокруг солнца по эллипсу - Pascal ABC
изобразить движение планеты вокруг солнца по эллипсу.

12
Puporev
Модератор
52973 / 40784 / 14032
Регистрация: 18.05.2008
Сообщений: 94,840
08.10.2011, 08:50 #2
Цитата Сообщение от Mr.Amsterdam Посмотреть сообщение
Нижний левый угол квадрата нужно взять за начало откуда будет двигаться точка,потом вводим 3 переменные,первая опускает току на "x" вниз,вторая на "y" вправо и третья на "c" вверх.
Вообще непонятно. А есть оригинал задания без Ваших комментариев?
0
Mr.Amsterdam
0 / 0 / 0
Регистрация: 10.12.2010
Сообщений: 8
08.10.2011, 08:59  [ТС] #3
Все стены дома имеют длину 5м. Северная и южная стороны-белые, западная и восточная-синие. Человек прошел от юго-восточного угла дома А метров на юг, В метров на восток и С метров север и посмотрел на дом.
Написать алгоритм, который определяет, что видит человек.
0
Puporev
Модератор
52973 / 40784 / 14032
Регистрация: 18.05.2008
Сообщений: 94,840
08.10.2011, 09:11 #4
Ну и при чем здесь графика и движение точки вокруг квадрата? Чисто аналитическая задача.
Кстати юго-восточный угол это правый нижний.

Добавлено через 2 минуты
Цитата Сообщение от Mr.Amsterdam Посмотреть сообщение
что видит человек.
И какого вида должен быть ответ?
0
Mr.Amsterdam
0 / 0 / 0
Регистрация: 10.12.2010
Сообщений: 8
08.10.2011, 09:19  [ТС] #5
Как же вам объяснить. Мне нужно написать программу,вводим сколько метров человек прошел на юг,Вводим сколько метров прошел на Восток,вводим сколько метров прошел на север,после программа должна показывать движение человека(точки) вокруг дома(квадрата). Точка(человек) должна двигаться в соответствии с введенными координатами. Как бы наглядно продемонстрировать решение задачи.
0
Puporev
Модератор
52973 / 40784 / 14032
Регистрация: 18.05.2008
Сообщений: 94,840
08.10.2011, 09:21 #6
А в условии есть какие-то ограничения для переменных a,b,c?
0
Mr.Amsterdam
0 / 0 / 0
Регистрация: 10.12.2010
Сообщений: 8
08.10.2011, 10:19  [ТС] #7
Как таковых ограничений нет, но желательно что бы точка за пределы экрана не убеагала

Добавлено через 15 минут
Просто вот это задание показать все визуально это личная прихоть преподавателя,а когда я хотел уточнить как именно должна работать программа мне сказали воспользоваться воображением
0
Puporev
Модератор
52973 / 40784 / 14032
Регистрация: 18.05.2008
Сообщений: 94,840
08.10.2011, 11:22 #8
Вот изобразил...
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
uses graphabc,crt;
var a,b,c,d,xc,yc,h,m,z,x,y:integer;
begin
repeat
writeln('Введите значения a,b,c>0:');
readln(a,b,c);
until(a>0)and(b>0)and(c>0);
clrscr;
hidecursor;
setwindowsize(500,500);
d:=5; //размер дома
h:=1; //шаг движения
//определим масштаб для рисования
if c-a<=d then z:=d+a
else z:=c;
if z>=d+b then m:=round((windowwidth-60)/z)
else m:=round((windowwidth-60)/(d+b));
//определим положение юго-восточного угла бома
xc:=30+m*d;
if c-a<=d then yc:=30+m*d
else yc:=30+m*(c-a);
x:=xc;
y:=yc;
//не юг
while y<=yc++m*a do
 begin
  lockdrawing;
  ClearWindow(clBlack);
  setpencolor(clWhite);
  setpenwidth(3);
  line(xc-m*d,yc-m*d,xc,yc-m*d);
  line(xc-m*d,yc,xc,yc);
  setpencolor(clBlue);
  line(xc-m*d,yc-m*d,xc-m*d,yc);
  line(xc,yc-m*d,xc,yc);
  setpencolor(clRed);
  circle(x,y,5);
  floodfill(x,y,clRed);
  setpencolor(clRed);
  setpenwidth(1);
  setpenstyle(psDot);
  line(xc,yc,x,y);
  redraw;
  sleep(10);
  y:=y+h;
 end;
// на восток
while x<=xc+m*b do
 begin
  lockdrawing;
  ClearWindow(clBlack);
  setpencolor(clWhite);
  setpenwidth(3);
  line(xc-m*d,yc-m*d,xc,yc-m*d);
  line(xc-m*d,yc,xc,yc);
  setpencolor(clBlue);
  line(xc-m*d,yc-m*d,xc-m*d,yc);
  line(xc,yc-m*d,xc,yc);
  setpencolor(clRed);
  circle(x,y,5);
  floodfill(x,y,clRed);
  setpencolor(clRed);
  setpenwidth(1);
  setpenstyle(psDot);
  line(xc,yc,xc,yc+m*a);
  line(xc,yc+m*a,x,y);
  redraw;
  sleep(5);
  x:=x+h;
 end;
//на север
while y>=yc-m*c+m*a do
 begin
  lockdrawing;
  ClearWindow(clBlack);
  setpencolor(clWhite);
  setpenwidth(3);
  line(xc-m*d,yc-m*d,xc,yc-m*d);
  line(xc-m*d,yc,xc,yc);
  setpencolor(clBlue);
  line(xc-m*d,yc-m*d,xc-m*d,yc);
  line(xc,yc-m*d,xc,yc);
  setpencolor(clRed);
  circle(x,y,5);
  floodfill(x,y,clRed);
  setpencolor(clRed);
  setpenwidth(1);
  setpenstyle(psDot);
  line(xc,yc,xc,yc+m*a);
  line(xc,yc+m*a,xc+m*b,yc+m*a);
  line(xc+m*b,yc+m*a,x,y);
  redraw;
  sleep(5);
  y:=y-h;
 end;
end.
1
Mr.Amsterdam
0 / 0 / 0
Регистрация: 10.12.2010
Сообщений: 8
08.10.2011, 12:23  [ТС] #9
Большое вам Спасибо. Отличная программа.
0
Mr.Amsterdam
0 / 0 / 0
Регистрация: 10.12.2010
Сообщений: 8
18.10.2011, 10:26  [ТС] #10
А можно как то сделать что бы точка потом еще на запад двигалась? Сам пробовал но ничего не получилось.
0
Puporev
Модератор
52973 / 40784 / 14032
Регистрация: 18.05.2008
Сообщений: 94,840
18.10.2011, 10:33 #11
Цитата Сообщение от Mr.Amsterdam Посмотреть сообщение
потом еще на запад двигалась
До каких пор?
0
Mr.Amsterdam
0 / 0 / 0
Регистрация: 10.12.2010
Сообщений: 8
18.10.2011, 10:39  [ТС] #12
Так же как и с другими сторонами,вводишь значение и она движется. "3;4;5;2" 3-на юг, 4-на восток, 5-на север, 2-на запад.
0
Puporev
Модератор
52973 / 40784 / 14032
Регистрация: 18.05.2008
Сообщений: 94,840
18.10.2011, 10:44 #13
Ни чего не понял. Нужно нормальное новое условие задачи, а то придумываете всякую хрень на ходу.

Добавлено через 29 секунд
И вообще, иди к тому кто придумывает и вместе делайте.

Добавлено через 1 минуту
Если в таком виде оставить, то человек будет иногда сквозь дом проходить, думать-то чуть нужно...
0
18.10.2011, 10:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2011, 10:44
Привет! Вот еще темы с ответами:

Изобразить движение треугольника (или круга) вокруг Земли - Pascal ABC
Помогите изобразить движение треугольника(или круга) вокруг Земли тут: uses GraphABC; var I,X,Y,D, pic: integer; begin ...

Написать программу, реализующую равномерное движение цветного квадрата по вертикали - Pascal ABC
1. написать программу , реализующую равномерное движение цветного квадрата по вертикали. 2. написать программу , реализующую абсолютно...

Поворот вокруг точки - Pascal ABC
всем доброго времени суток, целый час ломал голову как сделать поворот вокруг точки, а не вокруг начла координат, чего я только не...

Вращение прямоугольника вокруг точки - Pascal ABC
Помогите пожалуйста, прямоугольник вращается, Но, &quot;след&quot; за собой оставляет, не стирается предыдущее положение прямоугольника. Вроде должна...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.