Aktywne Wpisy
twardy-zawodnik +130
Dzisiejszy dzień przekonał mnie do emigracji. Zaczynam uczyć się niemieckiego żeby stąd #!$%@?ć. Jak dowiedziałem się że nie podniosą kwoty wolnej od podatku bo niby budżet się nie spina to autentycznie zrobiło mi się smutno. Akurat pracuje w branży w której b2b jest wyjątkowo nie popularne. Mam 30 lat, 15k brutto w Warszawie i gówno mi z tych pieniędzy zostaje płacąc za wynajem ponad 4k, gdzie #!$%@? mi jednoczenie drugi próg podatkowy.
Macie namiary na dobrego psychiatrę? Bo właśnie kupiłem francuskie kombi z najsłabszym dieslem i jaram się jak dziecko, to chyba nie jest normalne ( ͡°( ͡° ͜ʖ( ͡° ͜ʖ ͡°)ʖ ͡°) ͡°)
#motoryzacja #samochody #renault #laguna
#motoryzacja #samochody #renault #laguna
Mam w unity 2 obiekty i chciałbym żeby jeden kopiował rotację drugiego ale z lekkim skryptem modyfikujacym. Skrypt chce Vector3 a rotacje są jako Quaterniony. Musiałbym sprowadzić rotację pierwszego do Vector3, zaaplikowac skrypt i zamienić z powrotem na Quaternion.
pseudokod:
Quaternion cube1Rotation;
Quaternion cube2Rotation;
Vector3 cube1Values;
Vector3 cube2Values;
void CalcHarmonicRot (Vector3 newValues)
{
}
Wynik:
cube2.eulerAngles = newValues; //błędy i gimbal locki
cube2.transform.rotation = newValues; //rotacje o bardzo mały kąt
#unity3d #csharp
Tu nie ma filozofii:
var v = myRotation.eulerAngles;
//modifikacja v
myRotation = Quaternion.Euler(v);
tylko jest to nieprawidłowe podejście
nie rozumiem tego:
przeciez to jest tylkop przypisanie, jeśli masz nieprawidłowosci to są w newValues a to dlatego że to złe podejście
Skrypt chyba jest ok bo na pozycję działa dobrze tylko na rotacji robi te błedy
https://gist.github.com/FleshMobProductions/7b523b81d7595e685410be11b24aac3f
z kolei jak pominę skrypt to twoja rotacja działa idealnie, więc jest prawidłowa
No własnie musisz skumać że po takiej zamianie stopnie mogą się zmianić o wielokrotność 360 dlatego
1. Staraj się nie operowac na eulerach
2. Jesli juz musisz to tylko w jedną strone operuj, czyl icały czas tryzmaj gdzieś w postaci eulera i sobie przeliczaj i wrzucaj do tranforma, ale nie odczytuj z tranforma nowych eulerów bo moga byc inne
2. rotacja to rotacja jeśli wpisujesz pewny stan rotacji do tranforma to taki będzie ,nic nie ma prawa przeskoczyć jak go natomiast odczytasz to moze byc inny niż wpisałeś ale reprezentuje dokładnie to samo.
eulery to taki x w funkcji sin(x) która reprezentuje orientacje obiektu
Wpisujesz x do transforma
Ale odczutujesz potem **x -2*pi** orientacja jest dokladnie ta sama (wynik
W pewnym momencie rotacje odczytywane z Cube1 przeskakują z (90,0,0) na (0,180,180) i nie ma z czego czytać bo dane są już pomieszane. Musiałbym mieć odczyt taki jak w panelach unity tzn. jak x
Problem wynika z tego że nie wszystkie funckje są odwracalne
euler1->q2->euler1
euler1 != euler2 mimo że reprezentuja tą samą orientacje w przestrzeni
Jeśli masz 2 poruszające się obiekty i chcesz np coś naimowac miedzy nimi to będzie np ze zmienna prekościa to tylko operaje na quaternionach wchodza w grę