Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2008, 14:06   #1
Ensoph
Пользователь
 
Аватар для Ensoph
 
Регистрация: 29.06.2007
Сообщений: 47
По умолчанию Движение окружности

Продемонстрировать движение окружности от левой к правой границе окна программы, в течение движения окружность должна менять цвета
все когда-то начинали с элементарного...
Ensoph вне форума Ответить с цитированием
Старый 24.09.2008, 14:24   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Язык какой и в чём проблема?
setcolor(число от 0 до 15) - цвет рисования
circle(x, y, r) - окружность радиуса r с центром в (x, y)
getmaxx - ширина окна
getmaxy - высота окна (на всякий случай)
delay(миллисекунд) - задержка (поставить надо примерно 20 000-50 000)
eoln вне форума Ответить с цитированием
Старый 24.09.2008, 14:25   #3
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

Вот, чувак, что то подобное(как то раз писал, может не совсем то, но похоже)
на Delphi.

program Project2;
uses
Windows,
Messages;

var
DC:HDC;
Window:HWND;
Brush:HBrush;
Pen:HPen;
a,b:integer;
has:boolean;
k,l:boolean;
begin
has:=true;
k:=true;
l:=true;

a:=0;
b:=0;
while has=true do
begin

//Уравнение движения
if k=true then if a<924 then a:=a+5 else k:=false;
if l=true then if b<668 then b:=b+5 else l:=false;
if k=false then if a>0 then a:=a-5 else k:=true;
if l=false then if b>0 then b:=b-5 else l:=true;

Window:=Canvas.Handle;
DC:=GETDC(Window);
Brush := CreateSolidBrush (RGB (random(255), Random(255), Random(255)));
Pen := CreatePen (PS_SOLID, 1, RGB (0, 0, 0)); { карандаш }
SelectObject (dc, Brush); { выбираем ссылку для текущего контекста }
SelectObject (dc, Pen); { выбираем ссылку для текущего контекста }
Ellipse (dc, a, b, a+100, b+100);
DeleteObject (Pen); { для нормального функционирования программы }
DeleteObject (Brush); { необходимо удалить все создаваемые объекты }
ReleaseDC (Window, dc); { освобождает контекст }
Sleep(5);
end;
end.

Еллипс будет бегать по форме и ударяться об стенки, потом отлетать.
Но будет оставлять за собой след.
Если не хотите этого, то перерисовывайте окно при каждом такте!
Писано по д'Эльфийски

Последний раз редактировалось Лубышев; 24.09.2008 в 14:28.
Лубышев вне форума Ответить с цитированием
Старый 24.09.2008, 14:32   #4
Ensoph
Пользователь
 
Аватар для Ensoph
 
Регистрация: 29.06.2007
Сообщений: 47
По умолчанию

большое спасибо
все когда-то начинали с элементарного...
Ensoph вне форума Ответить с цитированием
Старый 25.09.2008, 12:11   #5
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

Извините, не совсем то написал, это код для перемешению по всему экрану.
Вот готовый код(код для перемещения эллипса в окне программы):
Вложения
Тип файла: zip Ellipse.zip (7.9 Кб, 26 просмотров)
Писано по д'Эльфийски
Лубышев вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Движение фигуры по окружности &RiU Помощь студентам 3 31.10.2009 20:39
Движение окружности и отрезка. Ev@ngel Компоненты Delphi 0 18.04.2008 22:16
Движение кнопки по окружности Инна Помощь студентам 10 22.04.2007 19:32
Движение по окружности Mickle Общие вопросы Delphi 3 13.04.2007 16:24
Анимация. Движение по окружности. Albenous Общие вопросы Delphi 1 11.04.2007 14:57