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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2017, 23:47   #1
Sulackan
Новичок
Джуниор
 
Регистрация: 09.10.2017
Сообщений: 2
По умолчанию С помощью таймера пустить фигуру "звезда" по заданной траектории

По заданной траектории с помощью таймера пустить фигуру "звезда" ниже алгоритм траектории
Код:
var x,y,d,k1,k2,k3,k4,i,j:integer;
begin
//координаты верхнего левого треугольника
x:=100;
y:=100;
//длина катета
d:=50;
moveto(x,y);
for j:=1 to 4 do
 begin
  case j of
  1:begin
    k1:=1;
    k2:=1;
    k3:=0;
    k4:=-1;
    end;
  2:begin
    k1:=-1;
    k2:=1;
    k3:=1;
    k4:=0;
    end;
  3:begin
    k1:=-1;
    k2:=-1;
    k3:=0;
    k4:=1;
    end;
  4:begin
    k1:=1;
    k2:=-1;
    k3:=-1;
    k4:=0;
    end;
  end;
for i:=1 to 5 do
 begin
  if odd(i) then
   begin
    lineto(x+k1*d,y+k2*d);
    x:=x+k1*d;
    y:=y+k2*d;
   end
  else
   begin
    lineto(x+k3*d,y+k4*d);
    x:=x+k3*d;
    y:=y+k4*d;
   end;
 end;
end;
Изображения
Тип файла: png img-kYzIkt (1).png (644 байт, 149 просмотров)
Sulackan вне форума Ответить с цитированием
Старый 10.10.2017, 02:01   #2
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,859
По умолчанию

А вопрос-то в чем?
Да и рисунок как-то мало смахивает на звезду.
northener вне форума Ответить с цитированием
Старый 10.10.2017, 06:19   #3
Sulackan
Новичок
Джуниор
 
Регистрация: 09.10.2017
Сообщений: 2
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
А вопрос-то в чем?
Да и рисунок как-то мало смахивает на звезду.
Рисунок траектории, а не фигуры. А вопрос именно в том, как любую фигура, можно даже не звезду, связать с этой траекторией и запустить через таймер

Последний раз редактировалось Sulackan; 10.10.2017 в 06:43.
Sulackan вне форума Ответить с цитированием
Старый 10.10.2017, 09:52   #4
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,538
По умолчанию

Например так.
В начале Timer1.Enabled установить False
Код:
//........
var
  Form1: TForm1;
  step:Integer;
const
  AR_X:array[0..4]of Integer=(116,209,239,146,257);
  AR_Y:array[0..4]of Integer=(150,77,150,94,94);

implementation

{$R *.dfm}

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

procedure TForm1.Button1Click(Sender: TObject);
begin
 Timer1.Enabled:=not Timer1.Enabled;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 if step=0
  then Image1.Canvas.MoveTo(AR_X[0],AR_Y[0])
  else if step<5
   then Image1.Canvas.LineTo(AR_X[step],AR_Y[step])
   else Image1.Canvas.LineTo(AR_X[0],AR_Y[0]);
 if step<5 then Inc(step);
end;

end.
Изображения
Тип файла: png starDel.PNG (18.8 Кб, 146 просмотров)

Последний раз редактировалось type_Oleg; 10.10.2017 в 09:54.
type_Oleg вне форума Ответить с цитированием
Старый 11.10.2017, 11:54   #5
dummy_user
Форумчанин
 
Аватар для dummy_user
 
Регистрация: 02.03.2013
Сообщений: 109
По умолчанию

Сделайте функцию DrawStar(X, Y) и не мучайтесь с координатами.
dummy_user вне форума Ответить с цитированием
Старый 11.10.2017, 12:10   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от dummy_user Посмотреть сообщение
Сделайте функцию DrawStar(X, Y) и не мучайтесь с координатами.
а что, в вашей функции (кстати, а почему функции, что она должна возвращать?) разве X и Y - это не координаты? или с ними мучиться будет проще?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.10.2017, 06:55   #7
dummy_user
Форумчанин
 
Аватар для dummy_user
 
Регистрация: 02.03.2013
Сообщений: 109
По умолчанию

void конечно же.

Да вы посмотрите на код, там постоянные выверты с координатами LineTo().
Не удобно же.
dummy_user вне форума Ответить с цитированием
Старый 12.10.2017, 08:19   #8
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от dummy_user Посмотреть сообщение
Да вы посмотрите на код, там постоянные выверты с координатами LineTo().
Так а разве ето ТС не просто рисует траекторию движение? Все что надо, заменить LineTo на DrawStar. имхо
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 12.10.2017, 09:46   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Все что надо, заменить LineTo на DrawStar. имхо
ошибаетесь.


Цитата:
Сообщение от dummy_user Посмотреть сообщение
void конечно же.
смешно. Вы Delphi ни с чем не перепутали?
Приведите ссылку на оф.документацию Delphi, где описан тип void, а то я как-то не в курсе
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.10.2017, 15:52   #10
dummy_user
Форумчанин
 
Аватар для dummy_user
 
Регистрация: 02.03.2013
Сообщений: 109
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
ошибаетесь.
смешно. Вы Delphi ни с чем не перепутали?
Приведите ссылку на оф.документацию Delphi, где описан тип void, а то я как-то не в курсе
Нет, не перепутал.

В Delphi функции не возвращающие значения называются процедурами.
В других языках (C, C++, JavaScript, ActionScript и т.д.) нет понятия "процедура", там есть функция возвращающая тип void то бишь ничего.
dummy_user вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вращение фигуры по заданной траектории schibeki Помощь студентам 12 28.02.2017 23:53
C# Движение точки по заданной траектории bubamo Помощь студентам 0 23.05.2016 17:20
Программа для движения объекта по заданной траектории Андрей Иван Фриланс 10 30.04.2015 10:52
Перемещение Image по заданной траектории. werrey Общие вопросы Delphi 3 01.06.2011 16:06
движение вокруг тела по заданной траектории PADOCTb Помощь студентам 2 12.10.2008 16:39