Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
2 / 2 / 0
Регистрация: 01.03.2016
Сообщений: 155

Формула изменения координат при "заносе"

05.03.2017, 18:31. Показов 2305. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мы знаем скорость машины и массу, в момент её поворота на неё действует сила инертности и сама тяга машины.
Как реализовать это в c# например с pictureBox(физику знаю на уровне 7 класса))
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.03.2017, 18:31
Ответы с готовыми решениями:

Изменение координат точек при изменении масштаба изображения (формула)
Здравствуйте задача следующая: есть изображение, допустим 500 х 300 на нем пользователь ставит n - точек в произвольных местах, допустим...

Ошибка при заносе данных в таблицу
вот код:<form method="post" action="index.php"> <input required placeholder="username" type="text" name="username"> <br> <input...

SOS! Автоконвертация кодировки при заносе в БД!
Опытные юзеры, добрый день! Прошу подсказать выход из моей ситуации. Есть 2 рабочих серва с одинаковыми БД MS SQL. Через среду NB Php я...

12
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
05.03.2017, 22:00
Цитата Сообщение от Андрей Рощупкин Посмотреть сообщение
Как реализовать это
Что это? Что вы хотите смоделировать?
0
2 / 2 / 0
Регистрация: 01.03.2016
Сообщений: 155
06.03.2017, 07:32  [ТС]
Смоделировать изменение координат (грубо говоря занос)
0
 Аватар для ViterAlex
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
06.03.2017, 07:37
Цитата Сообщение от Андрей Рощупкин Посмотреть сообщение
в момент её поворота на неё действует сила инертности и сама тяга машины
А также сила трения шин с дорогой, центробежная сила и сила тяжести.
0
2 / 2 / 0
Регистрация: 01.03.2016
Сообщений: 155
06.03.2017, 07:39  [ТС]
Это пока что не важно
0
16 / 16 / 5
Регистрация: 09.06.2015
Сообщений: 96
06.03.2017, 09:28
вам к математикам, вывести обобщенную формулу вашей задачи тут врятли кто то осилит, не та специализация. Будет расчет, поможем и с реализацией

я бы эту задачу делал в Unity с массами и гравитацией + наглядность
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
06.03.2017, 12:15
Цитата Сообщение от Андрей Рощупкин Посмотреть сообщение
Смоделировать изменение координат (грубо говоря занос)
Андрей, вот если вам задают вопрос, то логично что от вас ожидают исчерпывающей информации а не двух слов, которые и так очевидны из названия темы.
"Занос" зависит от десятка параметров. Какие из них вы задаете, какие хотите получить, каков тип автомобиля, какой привод, масса, тип шин и поверхности в конце концов?
И да, получить "формулу" нельзя, потому что такой формулы нет. Можно получить имитационное моделирование.
1
310 / 318 / 119
Регистрация: 29.10.2011
Сообщений: 1,006
06.03.2017, 12:36
У вас должен быть объект авто с определенными свойствами, который помещен в некую среду, которая в свою очередь имеет свои законы и воздействует на этот автомобиль. Это все должно работать без какого-либо UI. По этому у вас и пытаются выяснить, что именно вы делаете. Ибо сложность не в отображении этого в WF, а в технической реализации происходящего. Если вам нужен метод pictureBox.Drift(10f,20f,30f,40f), то его нет...
0
2 / 2 / 0
Регистрация: 01.03.2016
Сообщений: 155
06.03.2017, 20:57  [ТС]
Цитата Сообщение от sldp Посмотреть сообщение
pictureBox.Drift(10f,20f,30f,40f), то его нет...
я так и преполагал)
впринципе все что приходит мне в голову это пропорция основанная на векторах сил - тяга машины под углом это на правление передних колес относительно задних, а инертность идет по биссектрисе угла между этим углом колес.
наверное я поторопился с реализацией в c#, но по старому (далеко не доброму) scratch думал что это просто
0
2 / 2 / 0
Регистрация: 01.03.2016
Сообщений: 155
06.03.2017, 21:03  [ТС]
вот этот пример из scratch,
только тут у меня вызывает сомнение касание цвета, а все остальное как реализовать я впринципе понимая
Миниатюры
Формула изменения координат при "заносе"  
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
06.03.2017, 22:33
Лучший ответ Сообщение было отмечено Андрей Рощупкин как решение

Решение

Цитата Сообщение от Андрей Рощупкин Посмотреть сообщение
Формула изменения координат при "заносе" - C#
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
    public class Car
    {
        /// <summary>
        /// Масса, кг
        /// </summary>
        public float Mass = 1500;
        /// <summary>
        /// Колесная база, м
        /// </summary>
        public float Length = 4;
        /// <summary>
        /// Коэфф сцепления колес с поверхностью
        /// </summary>
        public float Adhesion = 0.1f;
        /// <summary>
        /// Угол на который в данный момент повернуты передние колеса
        /// (рулевое управление)
        /// </summary>
        public float ForwardWheelAngle = 0;
        /// <summary>
        /// Текущий коэфф мощности двигателя (от 0 до 1)
        /// (выжимание газа)
        /// </summary>
        public float Throttle = 0;
        /// <summary>
        /// Мощность двигателя (уе)
        /// </summary>
        public float EnginePower = 1500;
        /// <summary>
        /// Ручник
        /// </summary>
        public bool Breaks;
        /// <summary>
        /// Текущее положение центра автомобиля
        /// </summary>
        public Vector2 Pos;
        /// <summary>
        /// Текущее направление корпуса
        /// </summary>
        public Vector2 LookAt;
        /// <summary>
        /// Текущее направление движения (скорость)
        /// </summary>
        private Vector2 Velocity;
        /// <summary>
        /// Скольжение?
        /// </summary>
        public bool IsSliding;
 
        public Car()
        {
            LookAt = new Vector2(0, 1);
        }
 
        public void Update(float dt = 0.03f)
        {
            var Speed = Velocity.Length() * Math.Sign(LookAt.DotScalar(Velocity));
            //круговая скорость
            var rotateAngle = Speed * ForwardWheelAngle * dt;
            //сила тяги
            var force = Throttle * EnginePower;
            //поворот корпуса
            LookAt = LookAt.Rotate(rotateAngle);
            //скольжение
            var sliding = 0.5f + Math.Abs(rotateAngle) * 40;//скольжение из-за круговой скорости
            if (Breaks && Speed > 3) sliding = 1;//скольжение из-за тормоза
            if (Math.Abs(Throttle) > 0.9) sliding = 1;//скольжение из-за перегазовки
 
            //нормируем sliding
            if (sliding > 1) sliding = 1;
            sliding -= Adhesion/20;
 
            //при sliding = 0 направление движения соотвествует напрвалению корпуса
            //чем ближе sliding к 1, тем больше расхождение направления корпуса и направления движения
            Velocity = (LookAt * Speed).LerpTrim(Velocity, sliding);
            IsSliding = sliding > 0.95f;
 
            //поворот центра относительно задних колес
            var p = Pos - LookAt * (Length / 2f);
            Pos = Pos.Rotate(rotateAngle, p);
 
            //Ньютон
            Velocity += LookAt * (force * dt / Mass);
            Pos += Velocity * dt;
 
            //трение и сопротивление качению
            Velocity *= 0.998f;
 
            //ручник
            if(Breaks)
                Velocity *= 0.990f;
        }
    }
Вложения
Тип файла: zip WindowsFormsApplication365.zip (96.5 Кб, 16 просмотров)
6
2 / 2 / 0
Регистрация: 01.03.2016
Сообщений: 155
08.03.2017, 13:48  [ТС]
а где в вашем коде происходит поворот самой машины вокруг своей оси?
через точку останова я найти не смог
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
08.03.2017, 14:45
Цитата Сообщение от Андрей Рощупкин Посмотреть сообщение
а где в вашем коде происходит поворот самой машины вокруг своей оси?
Вот же:
C#
1
2
            //поворот корпуса
            LookAt = LookAt.Rotate(rotateAngle);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.03.2017, 14:45
Помогаю со студенческими работами здесь

Автоконвертация кодировки при заносе в БД! - SQL Server
Опытные юзеры, добрый день! Прошу подсказать выход из моей ситуации. Есть 2 рабочих серва с одинаковыми БД MS SQL. Через среду NB Php я...

Пересчитать уравнение нахождения переменной (длины от начала координат до точки) в случае изменения координат
При возникновении ситуации, когда значения координат поменяются, необходимо пересчитать значение переменной d; например если сначала я...

Формула координат точки
Дано: Есть прямая AB (точки А и В известны), точка B принадлежит перпендикулярной прямой ТB (если можно так выразиться), известен угол...

Формула линейного изменения
при изменении одной переменной от 0.5 до 3.0 вторая изменяется от 1 до 0.2. Уже весь мозг сломал, не могу придумать :) По идее простая же...

Формула преобразования аффинной системы координат
Написать формулы преобразования афинной системы координат, если известны координаты нового начала и новых базисных векторов в старой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru