Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Вопрос по переобразованием Лоренца ? (2 стр)

Вопрос по переобразованием Лоренца ? (2 стр)

Поделиться
Страницы: 1 2 3 4 Следующая »
=A=L=X=Постоялецwww2 дек. 20172:50#15
werasaimon
> просто замисть += умножайю на i = время

Ну да, только время это неправильное. Как раз в нём и проблема - это время не из преобразований Лоренца, а из какой то твоей выдуманной балды наугад.
Могу посоветовать только еще раз взять волю в кулак и наконец то прочитать написанное мною несколько раз выше.

werasaimonПостоялецwww2 дек. 201720:57#16
От того что я время умножу на лоренц фактор не чего не измениться, это же кофицциент . По сути вообще не имеет значения с какой скоростю идёт время . При любом времени должно выполняться
|'K| == |K| это условие !
То есть при (t == ровно чему угодно ). => |'K| == |K|
P.S : я же туда картинку поставил , по ней легко можно понять что переобразования на 100% соответствуют картинки ! То бишь они верны !

Вот мой движок он даст боле менее понимания СТО , в движке также отсусвуеть понятие релетивиской массы , потому масса это скаляр а значит должна быть инварятной, как любой скаляр ,
То  бишь не меняться от точки к точки ! По этому не существует такого понятия как релетивская масса !

https://github.com/werasaimon/realphysics4d
Но это условие |'K| == |K| не выполняется в нёмь  !

Не много поигравшысь с кодом , я всё таки нашол такой случай когда |'K| == |K| ..!

include <stdio.h>
#include <math.h>

/// вектор пространства минковского 
struct vector2
{
    float x; /// координата перемещения 
    float t; /// координата время 
    
    /// инцелизация вектора 
    vector2():x(0),t(0){}
    vector2( float _x , float _t ):x(_x),t(_t){}
    
    /// метрика минковского 
    float length2() const
    {
         return fabs(t*t - x*x);
    }
    
};
 
 

int main(int argc, char *argv[])
{
      
  
      /**/
      /// ИСО котрые в нулевой момент время совпадают 
     vector2 K0(1,1);  //  ИСО 0
     vector2 K1(1,1);  //  ИСО 1
     
     float v = 0.9;
    
      float gamma = sqrt( 1.0 - (v*v));/// лоренц фактор ^-1
     K1.x = (K0.x + v )/ gamma;/// перебразования лоренца по оси x
     K1.t = (K0.x + v * K0.x) / gamma ;/// переобразования  лоренца по оси t
    /**/
      
      
     /// вывод информации на екран 
     printf( "|K0|:%f |K1|:%f \n",K0.length2(),(K1).length2());
     printf( " \n\n\n what a fack ? " );
     /**/
    
    return 0;
}
Короче с етого случая надо вытянуть информацию почему тут роботаю переобразования , а в других нет ?

Правка: 4 дек. 2017 22:01

thevladПостоялецwww2 дек. 201723:59#17
werasaimon
> https://github.com/werasaimon/realphysics4d
"Новые версии движка(RealPhysics) , должны поддерживать уже "общую теорию относительности" и "квантовою хромодинамику" ."

держите наркомана...

Правка: 2 дек. 2017 23:59

werasaimonПостоялецwww3 дек. 20171:17#18
Если вам очень сложно понять код в шапки ,
Можно упростить задачу , и и будем рассматривать только одну итерацию, при которой будем  делать переобразования лоренца из ИСО ( К0 ) в другую ИСО ( К1) . И скорость света ровна единице  , так что с помощю простой алгебры можемь её убрать с уравнения , она же ровна единице с=1 в системи СИ

Loretz | Вопрос по переобразованием Лоренца ?

#include <stdio.h>
#include <math.h>

/// вектор пространства минковского 
struct vector2
{
    float x; /// координата перемещения 
    float t; /// координата время 
    
    /// инцелизация вектора 
    vector2():x(0),t(0){}
    vector2( float _x , float _t ):x(_x),t(_t){}
    
    /// метрика минковского 
    float length2() const
    {
         return fabs(t*t - x*x);
    }
    
};
 
 


int main(int argc, char *argv[])
{
  
  
      /// скорость 
      float v  = 0.1; 
  
      /// ИСО котрые в нулевой момент время совпадают 
     vector2 K0(1,0);  //  ИСО 0
     vector2 K1(1,0);  //  ИСО 1
     
     /// одна итерация для переобразования координат 
     float gamma = sqrt( 1.0 - (v*v));/// лоренц фактор ^-1
     K1.x = (K0.x + v )/ gamma;/// перебразования лоренца по оси x
     K1.t = (K0.t + v * K1.x )/ gamma ;/// переобразования  лоренца по оси t
   
      
     /// вывод информации на екран 
     printf( "|K0|:%f |K1|:%f \n",K0.length2(),(K1).length2());
     printf( " \n\n\n what a fack ? " );
    
    
    return 0;
}


P.S: переобразования не изменились, они как были правильными так и остались , изменилась только реализация !
При любой скорости должно выполняться |K| == |'K| .
Это же простейшие уравнения, вроде тут как на форуме не глупые (умные) люди подскажите почему не выполняется |K| == |'K| ?

Каждый вектор является ИСО, потому что у него эсть своё время !

Правка: 3 дек. 2017 1:28

=A=L=X=Постоялецwww3 дек. 20174:21#19
werasaimon

О! Видно что ты встал на путь исправления и уже даже начал вкладывать правильный физический смысл в переменные уравнения.
Таки да, действительно, если ты говоришь о преобразовании пары чисел в другую пару чисел, то не надо пихать в формулу какие то левые dt, непонятно откуда взятые и зачем. Берешь пару (k0.x, k0.t) и переводишь в пару (k1.x,k1.t) - так и только так!
Действительно только это соответствует преобразованиям Лоренца.
Почти молодец. Почти. Потому что ты допустил в этом деле просто досадную описку. Просто внимательнее всмотрись еще раз в формулу.

Правка: 3 дек. 2017 4:23

=A=L=X=Постоялецwww3 дек. 20174:31#20
P.S.
Ой, я поторопился. Досадных описок там опять больше одной. Форумулу еще опять таки почему то покорёжило и в действиях производимых тоже. Упс...
Тем не менее знаю, что подлинный экстаз от творчества может происходить только собственными силами, поэтому уступаю честь совершить это исправление топиккастеру.
SuslikМодераторwww3 дек. 20174:57#21
=A=L=X=
> Видно что ты встал на путь исправления и уже даже начал вкладывать правильный
> физический смысл в переменные уравнения.
да точно. ты сам посмотри на предыдущие творения автора: http://www.gamedev.ru/code/forum/?id=223374

100% кода, который в той демке работает, спёрто откуда-то. когда оно было в 2д, код был спёрт из box2d. после этого, насколько я помню, код был спёрт из буллета. 100% собственного авторского кода — жуткая ахинея по мотивам отрывочных знаний о теории относительности, которая не сильно мешает, потому что просто никак в расчётах не используется.

Правка: 3 дек. 2017 4:57

=A=L=X=Постоялецwww4 дек. 20173:28#22
werasaimon
> не уже ли так сложно глянуть на картинку , а потом в код , чтоб убедиться что

Я глянул когда, то убедился, что в преобразованиях Лоренца при пространственной координате временная координата есть, а в твоём коде - нет.
Как может быть верно преобразование в коде, если там даже нет всех переменных из исходного физического уравнения?

> Ето же простейшая формула !

Правка: 4 дек. 2017 3:29

werasaimonПостоялецwww4 дек. 201720:23#23
=A=L=X=
>Я глянул когда, то убедился, что в преобразованиях Лоренца при >пространственной координате временная координата есть, а в >твоём коде - нет.
>Как может быть верно преобразование в коде, если там даже >нет всех переменных из исходного физического уравнения?
Да всё верно ! Собственно это меня и побудило написать этот пост . Там есть ветка с четерхмерными координатами!
Но проблема в том что данное условие не выполняется |K| = |'K|
P.S: собственно можно обойтись и без координаты время если только один наблюдатель , эта координата нужна для перехода в другую ИСО !


>>Переписал сообщения без мата

> потому что просто никак в расчётах не используется.
Внимательней код посмотри , а потом говори используются или нет !
Ну или если для тебя это очень сложно , могу сделать какие-то физические сцены , которые демонстрируют СТО , например интерферометер ,  или же сжатия пространства, или замедления время !
P.S: А то как всегда , делаешь вывводи не розобравшысь в теме !
И зачемь смотреть на моё предвидущие творения , если тодже  самый код , который я сам скинул в посте выше . Алё!


=A=L=X=
Повторяю ещё раз , переобразования как были правильными так и остались , переписал я код только для того чтоб людям было понятней ! Я изменил код ровно на %0 ! Это же очевидно !
dt это интервал время , чемь он меньше тем больше точность интеграла! (Приращения , то бишь бесконечно малый интервал)
Пожалуста перестантье угадивать !
Я же вам даже картинку поставил с переобразованиями, не уже ли так сложно глянуть на картинку , а потом в код , чтоб убедиться что переобразования верны ! Код что в шапки что тут одно и тоже ! Переобразования как были верными так и остались ! Не тупите! Ето же простейшая формула !

Если кому интиресно просто посмотреть как роботает СТО ,  скажите какие физ-сцены показать , только чтото простое пожалуйста !?

Правка: 4 дек. 2017 20:31

=A=L=X=Постоялецwww4 дек. 201720:36#24
werasaimon

Не ну если код верный, то может быть и длины тогда уже равными получаются?

se-sssПостоялецwww4 дек. 201721:47#25
Неверны исходные данные:
      /// ИСО котрые в нулевой момент время совпадают 
     vector2 K0(1,0);  //  ИСО 0
     vector2 K1(1,0);  //  ИСО 1

Далее, что с размерностями?

     K1.x = (K0.x + v )/ gamma;/// перебразования лоренца по оси x

Правка: 4 дек. 2017 21:50

werasaimonПостоялецwww4 дек. 201722:03#26
=A=L=X=
> Не ну если код верный, то может быть и длины >тогда уже равными получаются?
Длины соотвествуют СТО !
se-sss
Так всё правильно , скорость по оси (x) это (v) !

Вот частный робочий случай , с него надо вытянуть информацию . Давайте вместе подумаем почему так роботает , а в других случаях нет ?

include <stdio.h>
#include <math.h>

/// вектор пространства минковского 
struct vector2
{
    float x; /// координата перемещения 
    float t; /// координата время 
    
    /// инцелизация вектора 
    vector2():x(0),t(0){}
    vector2( float _x , float _t ):x(_x),t(_t){}
    
    /// метрика минковского 
    float length2() const
    {
         return fabs(t*t - x*x);
    }
    
};
 
 

int main(int argc, char *argv[])
{
      
  
      /**/
      /// ИСО котрые в нулевой момент время совпадают 
     vector2 K0(1,1);  //  ИСО 0
     vector2 K1(1,1);  //  ИСО 1
     
     float v = 0.9;
      
      float gamma = sqrt( 1.0 - (v*v));/// лоренц фактор ^-1
     K1.x = (K0.x + v )/ gamma;/// перебразования лоренца по оси x
     K1.t = (K0.x + v * K0.x) / gamma ;/// переобразования  лоренца по оси t
    /**/
      
      
     /// вывод информации на екран 
     printf( "|K0|:%f |K1|:%f \n",K0.length2(),(K1).length2());
     printf( " \n\n\n what a fack ? " );
     /**/
    
    return 0;
}

Тут скорость всегда должна быть v <= (c = 1) ,
Потому что мы для простоты убрали c = скорость света в ваккуме..!

Правка: 4 дек. 2017 22:12

se-sssПостоялецwww4 дек. 201722:53#27
werasaimon
> se-sss
> Так всё правильно , скорость по оси (x) это (v) !
Складываем положение со скоростью?
werasaimonПостоялецwww4 дек. 201723:21#28
Вот ещё переобразования которые я сам вивел !
Они роботают всегда , но есть один нюанс , в нулевой момент время должно выполняться условие  t  = 't = 0 , короче они роботают только есль мы начинаемь с нулевого время .
Это не настоящие переобразования лоренца , это просто моя фантазия . Но за то условие |'K| == |K| в этих переобразованиях выполняются , только вот так |'K| == |K| + 1 .....!?
include <stdio.h>
#include <math.h>

/// вектор пространства минковского 
struct vector2
{
    float x; /// координата перемещения 
    float t; /// координата время 
    
    /// инцелизация вектора 
    vector2():x(0),t(0){}
    vector2( float _x , float _t ):x(_x),t(_t){}
    
    /// метрика минковского 
    float length2() const
    {
         return fabs(t*t - x*x);
    }
    
};
 
 

int main(int argc, char *argv[])
{
      
  
      /**/
      /// ИСО котрые в нулевой момент время совпадают 
     vector2 K0(2,0);  //  ИСО 0
     vector2 K1(2,0);  //  ИСО 1
     
     float v = 0.52;
    
     
    /**/
      float gamma = sqrt( 1.0 - (v*v));/// лоренц фактор ^-1
     K1.x = (K0.x - v )/ gamma;/// перебразования лоренца по оси x
     K1.t = (1.0  - v * K0.x) / gamma ;/// переобразования  лоренца по оси t
    /**/
    
      
      
     /// вывод информации на екран 
     printf( "|K0|:%f |K1|:%f \n",K0.length2(),(K1).length2()+1.0);
     printf( " \n\n\n what a fack ? " );
     /**/
    
    return 0;
}

se-sss
Ну да , так и должно быть , это обычное переобразования галилея , если убрать гамма фактор !

Правка: 4 дек. 2017 23:26

se-sssПостоялецwww5 дек. 20170:03#29
> se-sss
> Ну да , так и должно быть , это обычное переобразования галилея , если убрать
> гамма фактор !

Ну круто!
На 100-ом километре шоссе едет автомобиль со скоростью 100 км/ч.
В сумме будет 200.

Страницы: 1 2 3 4 Следующая »

/ Форум / Программирование игр / Физика

2001—2017 © GameDev.ru — Разработка игр