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

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

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

> задача на графику, Движение круга вокруг оси
Инкогнито
сообщение 24.12.2007 18:26
Сообщение #1


Новичок
*

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

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


Добрый вечер всем, у меня тут проблемы с графикой
Задача: Двухцветный круг вращается вокруг вертикальной оси. При нажатии пробел останавливается
uses crt,Graph;
var
GraphDriver,GraphMode,i:integer;
col,x,y,r:word;
s:string;
begin
GraphDriver:=detect;
GraphMode:=1;
InitGraph(graphDriver,GraphMode,'');
repeat
r:=100;
x:=100;
y:=100;
col:=white;
if col=8 then col:=2;
SetColor(col);
circle(r,x,y);
SetFillStyle(red,white);
floodFill(x,y,col);

until KeyPressed;
readln;
CloseGraph;


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


--------------------
И никто его так и не узнал*)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 9.01.2008 18:20
Сообщение #2


Гость






  setfillstyle(1,red);
setcolor(red);
while true do begin
d := 1;
while i<>31 do begin
if keypressed then
if readkey=' ' then begin
while not keypressed do
if readkey =' ' then break
else
if readkey='x' then begin
halt;
end;
end;


setactivepage(a);
setvisualpage(b);
clearviewport;
fillellipse (x,y,abs(i),y1); { <--- Внимательнее, здесь Abs, иначе вылетает }

delay(t);
c:=a;
a:=b;
b:=c;
i:=i+d;

if i=x1 then d := -d;

if i < 0 then begin
d := -d;
if getcolor = red then begin
setfillstyle(1,green);
setcolor(green);
end
else begin
setfillstyle(1,red);
setcolor(red);
end;
end;
end;

?
 К началу страницы 
+ Ответить 
Инкогнито
сообщение 9.01.2008 18:35
Сообщение #3


Новичок
*

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

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


Цитата(volvo @ 9.01.2008 18:20) *

  setfillstyle(1,red);
setcolor(red);
while true do begin
d := 1;
while i<>31 do begin
if keypressed then
if readkey=' ' then begin
while not keypressed do
if readkey =' ' then break
else
if readkey='x' then begin
halt;
end;
end;
setactivepage(a);
setvisualpage(b);
clearviewport;
fillellipse (x,y,abs(i),y1); { <--- Внимательнее, здесь Abs, иначе вылетает }

delay(t);
c:=a;
a:=b;
b:=c;
i:=i+d;

if i=x1 then d := -d;

if i < 0 then begin
d := -d;
if getcolor = red then begin
setfillstyle(1,green);
setcolor(green);
end
else begin
setfillstyle(1,red);
setcolor(red);
end;
end;
end;

?

Да! Большое пребольшое спасибо тебе))) Ты меня спас)


--------------------
И никто его так и не узнал*)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



- Текстовая версия 20.07.2025 20:28
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"