|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
21.03.2013, 20:12 | #11 |
Форумчанин
Регистрация: 28.05.2011
Сообщений: 309
|
Только у меня трабл с таймером.
Написал в событии "tick", чтобы(пример) повторило отрезок, каждую секунду прибаляя 1 к Х и У. А по нажатию на кнопку ничего не рисует..
Спеши медленно.
|
21.03.2013, 20:13 | #12 |
Форумчанин
Регистрация: 28.05.2011
Сообщений: 309
|
Код:
Спеши медленно.
|
21.03.2013, 22:01 | #13 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,883
|
Объявить переменную, например
Код:
Код:
Делать нужно не рассчитывая это в момент рисования, а рассчитывать отдельно, рисовать отдельно. Далее, прибавлять 1 по х и у даст результат - перемещение только вправо вниз строго по диагонали 45 градусов. А надо во все стороны (т.е. приращения и с + и с минусом) и с учётом дробных смещений для диагоналей под любым углом. Тут обычно в простом виде берут вещественные координаты и рассчитывают в них, а при рисовке просто округляют. Ну а по-нормальному это делается на векторах, оно проще. Рассчитать в обоих вариантах так - координаты(вектор) одной точки вычитаются из другой и делятся на длину полученного вектора (корень из суммы квадратов разностей координат, теорема Пифагора, иными словами), получаем минимальную скорость (она тоже вектор может быть), она уже с учетом знаков, её можно умножить на число и варьировать итоговую скорость. Последний раз редактировалось phomm; 21.03.2013 в 22:05. |
21.03.2013, 22:53 | #14 |
Форумчанин
Регистрация: 28.05.2011
Сообщений: 309
|
phomm, у меня с математикой плоховато..
то-то совсем не могу понять как с помощью векторов и теоремы Пифагора это сделать и откуда скорость взять. Не могли бы Вы, объяснить на пальцах как это с векторами? Мне кажется это намного сложней.
Спеши медленно.
|
22.03.2013, 01:07 | #15 |
Форумчанин
Регистрация: 28.05.2011
Сообщений: 309
|
Прочитал статью на хабре про вектора, вроед и не так сложно и удобно очень, но не пойму как применить сюда?
Спеши медленно.
|
22.03.2013, 03:07 | #16 |
Форумчанин
Регистрация: 28.05.2011
Сообщений: 309
|
Придумал так: будет пикчербокс, внизу у него будет точка начало координат(0,0), от нее и будем двигаться, высчитывать скорость..
Теперь проблема в том, что как заставить машинку ровно передвинуться из одной точки в другую, если первая точка, к примеру (0,0), а другая (1,5). Если бы было первая (0,0), а вторая (3,3) - просто прибавлять Х и У.
Спеши медленно.
|
22.03.2013, 06:42 | #17 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,883
|
Давайте код (архив проекта) по максимуму наполненный тем что Вам надо и со всеми Вашими попытками, запилю Вам часть, что отвечает а это.
|
22.03.2013, 10:28 | #18 |
Форумчанин
Регистрация: 28.05.2011
Сообщений: 309
|
phomm, спасибо большое! Но, выходит, это Вы сделаете, а не я.
Давайте я сам попробую, а если уже совсем не выйдет - напишу Вам, хорошо ? Спасибо еще раз. Сейчас никак не могу понять как перемещение сделать..
Спеши медленно.
|
22.03.2013, 10:53 | #19 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Процедура на Таймере: стираем объект по координатам X,Y изменяем (наращиваем координаты X,Y) на заданное приращение рисуем объект по полученным координатам X,Y и всё. |
|
22.03.2013, 20:36 | #20 |
Форумчанин
Регистрация: 28.05.2011
Сообщений: 309
|
Serge_Bliznykov, это конечно да, но как найти "заданное приращение"? Легко, когда надо вперелназадвлевовправо двигать, а когда надо на 10 клеточек по Х и 27 по У ?
Спеши медленно.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Управление игрушечной машинкой с компьютера | 8Observer8 | C# (си шарп) | 11 | 26.10.2012 17:27 |
Управление 2 экранами | Alexandr555 | Компьютерное железо | 13 | 06.07.2011 22:30 |
Управление | Костян 98 | Общие вопросы Delphi | 21 | 30.05.2011 16:31 |
Управление памятью | ilham | Операционные системы общие вопросы | 2 | 17.12.2008 18:29 |