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

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

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

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> 3 задачки на графику, помогите плиз
сообщение
Сообщение #1


Новичок
*

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

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


Помогите, пожалуйста, решить 3 задачки в Паскале..
на выходных сдавать, а я в этом ни гу-гу...

есть 3 задачки:

1. сгибающаяся под тяжестью растущего плода ветка;

2. Перемещать три звезды разного цвета в пределах экрана;

3. Построить прямоугольник со сторонами разного цвета и основанием, движущимся согласно процедуре OTREZOK
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

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

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


Что, совсем ни гу-гу? Просто не ясно, с чего начинать помощь: с анимации, с графики или вообще с основ Паскаля.

Попробуй для начала первую сделать. Вот заготовка, а описание конкретных процедур для рисования можно найти например здесь.
uses
Graph, Crt;

procedure DrawBranch;
begin
{ Тут следует разместить команды для рисования ветки. }
end;

var
gd, gm: Integer;
begin
gd := Detect;
InitGraph(gd, gm, '');

DrawBranch;

ReadKey;
CloseGraph;
end.


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






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

А вообще, автору очень не мешало бы сначала ознакомиться с правилами (как форума в целом, так и этого раздела в частности), и только потом задавать вопросы...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

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

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


я конечно много извиняюсь,
но просто время уже поджимает..

да, задачи на анимацию.. я уже не знаю, что и сделать...
помогите..

сори что может не туда пишу, но просто выхода уже нету...

а я в паскале - ноль...

так что помогите с кодами.. уж не ругайте сильно...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

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

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


3ю задачу на треуголник решил..

а вот первые две - никак.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Профи
****

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

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


Покажи, как решил, поможем переделать.


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

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

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


да третью я уже сделал,

мне надо с первыми двумя разобраться, или хотя бы со звездами...
напишите плиз код,

я не знаю как делать...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Профи
****

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

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


Даже если кто-нибудь захочет делать тебе программы с нуля и бесплатно, ему придется гадать как именно их надо сделать. Например, можно ли использовать объекты, записи. Если ты приведешь свой код решения третьей задачи, это поможет правильно написать решение первых двух, а кроме того, покажет, что ты не халяву ловишь, а пытаешься и сам что-то сделать.


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Новичок
*

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

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


PROGRAM  treug;
uses Graph;
var Gd,Gm: Integer;
BEGIN
Gd:=VGA; Gm:=VGAHi; InitGraph (Gd,Gm,'c:\tp\bgi');
If GraphResult=grOk
then
begin
SetColor (LightMagenta); {cvet gorizont linii}
Line (120,210,520,210); {gorizont otrezok }
SetColor (LightCyan); {cvet levogo}
Line (120,210,320,10); {levii katet}
SetColor (Green); { cvet pravogo}
Line (320,10,520,210); {pravii katet}
ReadLn
end
END.


вот код треугольника... а вращающаяся линия отпадает, не могу доделать

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


Профи
****

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

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


Ладно, вот код ко второй задаче. Разбирайся, задавай вопросы.
uses
Graph, Crt;

const
NumStars = 5; { Число звезд. }
StarRadius = 25; { Размер звезд. }
Step = 1; { Шаг, с которым перемещаются звезды. }
FrameDelay = 1; { Задержка кадра. Попробуй увеличить это значение, }
{ если звезды движутся слишком быстро. }

var
Star: array [0..5] of PointType;
gd, gm: Integer;
i: Integer;
Pos, Offset: array[1..NumStars] of PointType;
Color: array[1..NumStars] of Word;
begin
gd := Detect;
InitGraph(gd, gm, '');

{ Начальные координаты звезд, направления их движения и цвет задаются случайно. }
Randomize;
for i := 1 to NumStars do begin
Pos[i].x := StarRadius + Random(GetMaxX - 2 * StarRadius);
Pos[i].y := StarRadius + Random(GetMaxY - 2 * StarRadius);
Offset[i].x := Step * (1 - 2 * Random(2));
Offset[i].y := Step * (1 - 2 * Random(2));
Color[i] := Random(GetMaxColor - 1) + 1;
end;

{ Вычисление вершин звезды. }
for i := 0 to 5 do begin
Star[i].x := Round(Sin(i * Pi * 0.8) * StarRadius);
Star[i].y := Round(-Cos(i * Pi * 0.8) * StarRadius);
end;

{ Основной цикл. }
repeat
for i := 1 to NumStars do begin
{ Стираем звезду. }
SetColor(Black);
SetViewPort(Pos[i].x, Pos[i].y, Pos[i].x, Pos[i].y, false);
DrawPoly(6, Star);

{ Меняем положение звезды. }
Inc(Pos[i].x, Offset[i].x);
Inc(Pos[i].y, Offset[i].y);

{ Если звезда достигла края экрана, меняем направление ее движения. }
if (Pos[i].x < StarRadius) or (Pos[i].x > GetMaxX - StarRadius) then
Offset[i].x := -1 * Offset[i].x;
if (Pos[i].y < StarRadius) or (Pos[i].y > GetMaxY - StarRadius) then
Offset[i].y := -1 * Offset[i].y;

{ Рисуем звезду в новом месте. }
SetColor(Color[i]);
SetViewPort(Pos[i].x, Pos[i].y, Pos[i].x, Pos[i].y, false);
DrawPoly(6, Star);
end;
{ Задержка, чтобы кадры не сменяли друг друга слишком быстро. }
Delay(FrameDelay);
until KeyPressed;

CloseGraph;
end.


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Новичок
*

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

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


Archon - огромное тебе спасибо, немного поэксперементировал со звездами...


блин, ты меня выручил...




а что делать с 1ой ? есть парочка идей..
можно сделать статическую линию и тупо круг под ней,
линия опускается, и круг немного увеличивается, (ну скажем до 10 раз так может происходить)..
а дальше надо сделать, что бы предыдущий рисунок стирался..

идея правильная? можно ведь так? и легче будет, и особо заморачиваться не надо...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Профи
****

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

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


Цитата
идея правильная? можно ведь так? и легче будет, и особо заморачиваться не надо...
Конечно smile.gif. За основу можешь мою программу взять. В основном цикле есть 3 основные стадии: стирание (рисование черным цветом), изменение параметров (координаты, размер объектов, возможно форма), рисование (уже основными цветами). Введи процедуру, которая рисует картинку в зависимости от степени наклона. Получится что-то вроде этого:
uses
Graph, Crt;

const
FrameDelay = 50; { Задержка кадра. }
NumStages = 100; { Число степеней "зрелости" фрукта. }

procedure DrawBranch(Stage: Integer; Draw: Boolean);
begin
{ ... }
{ Здесь надо поместить код рисования ветки с фруктом в зависимости от степени }
{ зрелости фрукта (Stage). В примере это число меняется от 0 до 99, но ты }
{ можешь сделать так, как будет удобнее. Если Draw = false, то рисовать надо }
{ черным цветом, если Draw = true, то рисовать надо обычными цветами. }

{ Это просто пример, чтобы убедиться, что все работает: }
if Draw then SetColor(Red) else SetColor(Black);
Line(10, 50, 200, 50 + Stage);
end;

var
gd, gm: Integer;
Stage: Integer;
begin
gd := Detect;
InitGraph(gd, gm, '');

{ Основной цикл. }
Stage := 0;
repeat
{ Стираем ветку. }
DrawBranch(Stage, false);
{ Переходим на новую стадию наклона. }
Inc(Stage);
{ Рисуем ветку в новой стадии. }
DrawBranch(Stage, true);
{ Задержка, чтобы кадры не сменяли друг друга слишком быстро. }
Delay(FrameDelay);
until Stage > NumStages;

ReadKey;
CloseGraph;
end.


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Новичок
*

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

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


конечно огромное спасибо за основу, но все же, у меня нету никаких идей, как сделать,
будь добр, выручи то...
а то не сдам эти лабы, чтоб их...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Новичок
*

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

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


Чото у меня в задачке со звездами пишет, что файл Graph.dcu не находит. Дельфи7, чо бы это значило?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Гость






Цитата
чо бы это значило?
Это значило бы, что надо пользоваться Паскалем, а не Дельфи для работы с модулем Graph (которого в Дельфи просто нет)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Новичок
*

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

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


хи-хи, скачал Паскаль с "Паскалера.ру", а он 97 года и ругается, не может в нормальную ХР-ку прописаться lol.gif

Добавлено через 3 мин.
Мож, Паскаль уже устарел, лучше язык Дельфи учить? mega_chok.gif

Добавлено через 3 мин.
Доброе утро, Владимир, рад Вас видеть! ))) smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Гость






Я не знаю, чего и откуда ты качал, но Турбо Паскаль 1992 года в XP работает прекрасно, причем никуда не прописывается... Или (если не можешь установить Турбо), скачай FPC: http://www.freepascal.org/download.var , он тоже прекрасно работает с Graph.

Цитата
Мож, Паскаль уже устарел, лучше язык Дельфи учить?
Ну вот учишь ты Дельфи, тебе это помогло? Простейшую программу запустить и то не можешь... А то что Паскаль устарел - это ищи в Гугле место для холиваров и иди туда, здесь - не надо... Паскали они разные, я тебе сказал уже...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


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

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

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


Цитата(лёшик @ 27.06.2009 9:37) *
скачал Паскаль с "Паскалера.ру", а он 97 года и ругается, не может в нормальную ХР-ку прописаться
Незачем ему прописываться. Если это не 64-версия, то просто нужно создать каталог ТР и скопировать его туда.

Цитата(лёшик @ 27.06.2009 9:37) *
Мож, Паскаль уже устарел, лучше язык Дельфи учить?
Нету такого языка: Дельфи. Есть система разработчика Дельфи, которая использует язык Object Pascal.


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


Новичок
*

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

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


Не, совершенно очевидно, что сам Паскаль не устареет, стареют только его турбо-воплощения))) И одно другому не мешает))) А кто такие холивары?? blink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


Гость






Цитата
Есть система разработчика Дельфи, которая использует язык Object Pascal.
Неправда, начиная с D7 и язык тоже называется Дельфи...
 К началу страницы 
+ Ответить 

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

 





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