Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Свободное падение на C# 
V
    Опции темы
ДимkА
Дата 6.4.2010, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 30.12.2008

Репутация: нет
Всего: нет



Программирую в Vsual Studio 2010
У меня есть кнопка на форме. Нужно что-бы эта кнопка свободно падала до низа формы.
Формула свободного падения
y = y + g * t ^ 2 / 2
Подскажите как перевести это в программный код? smile 

Это сообщение отредактировал(а) ДимkА - 6.4.2010, 11:56
PM MAIL   Вверх
jorikdima
Дата 6.4.2010, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 18.1.2008
Где: Там, где Зенит

Репутация: нет
Всего: нет



координаты (location ) кнопки меняйте в соответствии с законом. а время берите из Timer запустив его при нажатии на кнопку
PM MAIL   Вверх
ДимkА
Дата 6.4.2010, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 30.12.2008

Репутация: нет
Всего: нет



А как из Timer взять время?
PM MAIL   Вверх
Skalik
Дата 6.4.2010, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 131
Регистрация: 20.3.2008
Где: Харьков

Репутация: нет
Всего: нет



в нем есть событие Timer_Tick, которое выполняеться при каждом срабатывании таймера, тут ты можешь делать с временем что хочешь...

Это сообщение отредактировал(а) Skalik - 6.4.2010, 10:21
PM MAIL ICQ   Вверх
ДимkА
Дата 6.4.2010, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 30.12.2008

Репутация: нет
Всего: нет



Вот что получилось
int g = 10;

private void button1_Click(object sender, EventArgs e)
{
        timer1.Start();
}

private void timer1_Tick(object sender, EventArgs e)
{
        button1.Location.Y = button1.Location.Y + g * (А ЧТО ЗДЕСЬ ПИСАТЬ, КАК ПОЛУЧИТЬ ЗНАЧЕНИЕ, КАК ЗАДАТЬ ЭТУ ПЕРЕМЕННУЮ)  ^ 2 / 2;
}

Это сообщение отредактировал(а) ДимkА - 6.4.2010, 11:47
PM MAIL   Вверх
jonie
Дата 6.4.2010, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 6
Всего: 118



заведи переменную private int t, которую инкрементируй (++i) при каждом вызове timer1_Tick, это и будет твое время (точнее это будет количество "тиков таймера", на а из них, зная дискретность таймера, можно и получить секнды)..


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
ДимkА
Дата 6.4.2010, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 30.12.2008

Репутация: нет
Всего: нет



Вот так?

        int g = 10;
        private int t;

        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Start();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            t = ++t;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            button1.Location.Y = button1.Location.Y + g * t ^ 2 / 2;
        }

Error    1    Cannot modify the return value of 'System.Windows.Forms.Control.Location' because it is not a variable    C:\C#\Программа1\Программа\Form1.cs    35    13    Программа

Плиз напишите полный код а то я так долго думать буду(((((

Это сообщение отредактировал(а) ДимkА - 6.4.2010, 11:54
PM MAIL   Вверх
CYBERDREAM
Дата 6.4.2010, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 8
Всего: 28



Код

button1.Location.Y = button1.Location.Y + g * t ^ 2 / 2;

заимени на 
Код

button1.Location = new Point(button1.Location.X, button1.Location.Y + g * t ^ 2 / 2);

P.S. пользуйся подсветкой


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
ДимkА
Дата 6.4.2010, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 30.12.2008

Репутация: нет
Всего: нет



Получилось! Спасибо огромное!
PM MAIL   Вверх
ДимkА
Дата 6.4.2010, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 30.12.2008

Репутация: нет
Всего: нет



А где и как теперь указывать что кнопка до низа формы падает. Т. е. куда вставлять >= 24(высота кнопки) или какую строку и где надо написать чтобы от высоты формы отнять высоту кнопки и до этого значения она падала?

Это сообщение отредактировал(а) ДимkА - 6.4.2010, 13:08
PM MAIL   Вверх
Экскалупатор
Дата 6.4.2010, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



ДимkА, я так понимаю ты программирование не учил? особенно ту часть которая про алгоритмизацию? 

добавь условный оператор, который будет проверять где у тебя кнопка и решать, опускать ее ниже или нет.
PM MAIL ICQ   Вверх
ДимkА
Дата 6.4.2010, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 30.12.2008

Репутация: нет
Всего: нет



Спасибо. Я уже решил эту задачу по своему.
Алгоритм был с самого начала. А вот как перевести его в код вот этого я не знаю. Я надеялся кто нибудь представит свой вариант кода.
Тут http://forum.vingrad.ru/forum/topic-295547.html программист за 2 часа прогу написал. Я думаю она раз в 100 сложнее этой. Так вот что сделал я за 2 часа, а что он.
Вам же легко ТАКОЙ код написать минут за 10 не больше. А вы всё не учил да не учил.
PM MAIL   Вверх
Экскалупатор
Дата 6.4.2010, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



ДимkА, понимаешь, вся разница в том, что ты спрашиваешь как написать. и тебе пытаются подсказать, что бы ты научился и сделал сам. а если тебе нужно что бы тебе написали то так и скажи, но это уже не в этом разделе.
PM MAIL ICQ   Вверх
ДимkА
Дата 6.4.2010, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 30.12.2008

Репутация: нет
Всего: нет



Тогда в каком?
PM MAIL   Вверх
PashaPash
Дата 6.4.2010, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 9
Всего: 49





--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0867 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.