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

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

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

 
 Ответить  Открыть новую тему 
> Анимация(((, наверняка одминам это как 2 пальца об асфальт))
сообщение
Сообщение #1


Новичок
*

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

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


доброго времени суток!!
привет вам из далекой (или не далекой) Беларуси!
у меня проблема: нужно написать на зачет по информатике 2 графические задачи((((

помогите чем сможете...

1. сектор вращается против часовой стрелки и меняет цвета (7 цветов). внутренний угол 30 градусов

2. фигура, состоящая из 2-х кругов с диаметрами D=40 и d=18, движется по горизонтальной поверхности длиной L=180. При достижении стенок на концах поверхности направление движения фигуры меняется...

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


Гуру
*****

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

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


1. вращение диска - похожая задача.

2. Супер бильярд - похожая задача.

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


Новичок
*

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

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


круто!!

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


Гость






Цитата
а как сделать так чтоб сектор менял цвет??
Когда-то я делал программу "Поле чудес", так вот чуть-чуть подкорректированный код вращения барабана. По-моему, то, что тебе нужно...
uses crt,graph;

var
gm, gd, x, y: Integer;
ac: ArcCoordsType;

const
numSectors = 12;
EverySector = 360 div numSectors;

Colors: array[1 .. numSectors] of integer =
(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);

var
pass, p, T: Integer;

begin
gd := Detect;
InitGraph(gd, gm, '');
if GraphResult <> grOk then begin
WriteLn('Error'); Halt(100)
end;

x := 200; y := 200;
Ellipse(x, y, 0, 360, 103, 103);

repeat

for p := 1 to numSectors do begin
SetColor(DarkGray);
Ellipse(x, y,
Pred(p) * EverySector, p * EverySector, 100, 100);

GetArcCoords(ac);
with ac do begin
Line(x, y, xStart, yStart);
Line(x, y, xEnd, yEnd);

SetFillStyle(SolidFill, colors[p]);

if colors[p] > 0 then begin
inc(colors[p]); if colors[p] > LightGray then colors[p] := 1;
end;

FloodFill( (xStart+xEnd) div 2,
(yStart+yEnd) div 2, DarkGray);
end;
end;
T := colors[numSectors];
move(colors[1], colors[2], pred(numSectors)*sizeof(integer));
Colors[1] := T;

delay(25000);

until keypressed;

ReadLn;
CloseGraph
end.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

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

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


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


Гость






Цитата
у меня почему-то рисует только 1 сектор синим, а остальные чёрным...
И что потом происходит? Должно начаться вращение цветного сектора с одновременной сменой его цвета. Я проверял у себя, все нормально работает. Чем компилируешь, уточни. Это будет работать только с использованием Турбо Паскаля.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

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

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


у меня Free Pascal IDE ...я посмотрел, всё работает, но только оч медленно...как бы мне поменять время задержки???

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


поиск
****

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

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


delay(время в милисекундах);
1000 = 1 сек


--------------------
typedef void Śūnyatā ;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Цитата
у меня Free Pascal IDE
Ах, вот оно что... В FreePascal-е очень медленная реализация FloodFill, это не дает программе выполняться так же быстро, как в Турбо Паскале. Все, что могу предложить - это вот такой вот трюк:
uses crt,graph;

var
gm, gd, x, y: Integer;
ac: ArcCoordsType;

const
numSectors = 12;
EverySector = 360 div numSectors;

Colors: array[1 .. numSectors] of integer =
(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);

var
pass, p, T: Integer;

begin
gd := d4bit; // уменьшаем число цветов
gm := m640x480; // и размер до обычных размеров VGA

InitGraph(gd, gm, '');
if GraphResult <> grOk then begin
WriteLn('Error'); Halt(100)
end;

x := 200; y := 200;
repeat
setfillstyle(solidfill, black); // затираем прежнее изображение
bar(x - 100, y - 100, x + 100, y + 100);

SetColor(White);
Ellipse(x, y, 0, 360, 103, 103);

for p := 1 to numSectors do begin
SetColor(DarkGray);
Ellipse(x, y,
Pred(p) * EverySector, p * EverySector, 100, 100);

GetArcCoords(ac);
with ac do begin
Line(x, y, xStart, yStart);
Line(x, y, xEnd, yEnd);

if colors[p] > 0 then begin
SetFillStyle(SolidFill, colors[p]); // и рисуем новый цветной сектор
inc(colors[p]); if colors[p] > LightGray then colors[p] := 1;
FloodFill( (xStart+xEnd) div 2,
(yStart+yEnd) div 2, DarkGray);
end;
end;
delay(50);
end;
T := colors[numSectors];
move(colors[1], colors[2], pred(numSectors)*sizeof(integer));
Colors[1] := T;

delay(15);

until keypressed;

ReadLn;
CloseGraph
end.
За счет того, что FloodFill вызывается один раз вместо 12-ти, получается 12-ти кратное ускорение. Но все равно, видно процесс заливки...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Новичок
*

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

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


аааааа, жжош, вольво!!!! СПАСИБО БОЛЬШОЕ!!!

прога как ломанулась!!!

а у тя есть какие-нибудь советы по поводу второй проги??
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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