Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.01.2009, 12:45
Interface Interface вне форума
Активный
 
Регистрация: 23.05.2008
Адрес: Россия, Уфа
Сообщения: 203
Репутация: 1
По умолчанию Алгоритм движения по кругу

Возник простой вопрос! Я пишу прогуи там должна быть кнопка бегающая по кругу. Как это сделать??? То есть:
есть таймер, мне нужен кусок кода оттуда, плиз это ж нетрудно...
__________________
Я ни в чем никогда не уверен... И в этом тоже...
Ответить с цитированием
  #2  
Старый 11.01.2009, 13:54
Rat Rat вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 391
Репутация: 6078
По умолчанию

http://alglib.sources.ru/graphics/circle.php
Ответить с цитированием
  #3  
Старый 11.01.2009, 13:58
Interface Interface вне форума
Активный
 
Регистрация: 23.05.2008
Адрес: Россия, Уфа
Сообщения: 203
Репутация: 1
По умолчанию

Спасибо конечно, но он мне пишет, что узел не найден. Не мог бы ты сюда выложить код? =)
__________________
Я ни в чем никогда не уверен... И в этом тоже...
Ответить с цитированием
  #4  
Старый 11.01.2009, 16:15
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

проще простого:
Код:
const centerx=200;  //координаты центра
      centery=200;    //окружности
      rad=50;           //радиус

var   angle:real;      //угол

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Button1.Left:=centerx+Round(rad*cos(angle));
  Button1.Top:=centery+Round(rad*sin(angle));
  angle:=angle+pi/18;   //изменение угла. чем меньше, тем точнее
                                 //здесь угол 10*
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
angle:=0;  //начальный угол
end;
можно также перемещать координаты центра-будет этакий спирограф

следует учитывать, что координаты кнопки отсчитываются относительно ее левого верхнего угла
__________________
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت
Ответить с цитированием
  #5  
Старый 11.01.2009, 17:53
Interface Interface вне форума
Активный
 
Регистрация: 23.05.2008
Адрес: Россия, Уфа
Сообщения: 203
Репутация: 1
По умолчанию

Спасибо огромное!!! Ща состряпал некую "приколку". Изначальный смысл проги был в украшении курсора летающим вокруг него пикселем. Но из за какой то ошибки он теперь обладает интересным свойством, он как будта чернила размазывает цвета по экрану... Вот код:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  ScreenDC: hDC;
xc,yc,c,x,y : Integer;
  a : real;
mp : TPoint;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
GetCursorPos(mp);
xc := mp.X;
yc := mp.Y;
ScreenDC := GetDC(0);
c := GetPixel(ScreenDc,xc+Round(25*cos(a)),yc+Round(25*sin(a)));
SetPixel(ScreenDc,x,y,c);
SetPixel(ScreenDc,xc+Round(25*cos(a)),yc+Round(25*sin(a)),clRed);
x :=  xc+Round(25*cos(a));
y := yc+Round(25*sin(a));
a := a + 0.1;
ReleaseDC(0,ScreenDC); {îñâîáîäèòü êîíòåêñò}

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
a := 0;
end;

end.
Киньте на форму таймер на 10мс вставьте код и уаля. Нечто ненужное и непонтное заполонит ваш экран. Незабудьте его потом "протереть" каким нить окошком! =)
__________________
Я ни в чем никогда не уверен... И в этом тоже...
Ответить с цитированием
  #6  
Старый 11.01.2009, 21:09
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

да тут и форма-то не нужна... создать динамически таймер и все тока еще горячую клавишу надо для выхода назначить
и еще...угол лучше все-таки в радиах отмерять
__________________
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:58.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025