-
1. Data: 2017-10-01 17:09:52
Temat: Prosty przykład Qt - zagadka z graf. 3D
Od: Szyk Cech <s...@o...pl>
Witam
Nie mam żadnego doświadczenia z grafiką 3D, a jak mniemam ten przykład
jej dotyczy. I bardzo mnie ciekawi sens tego obliczenia.
Przykład dotyczy prostej animacji kulki zgodnie ze wskazaniami
akcelerometru w telefonie. Przykład jest dostępny na stronie:
http://doc.qt.io/qtcreator/qtcreator-accelbubble-exa
mple.html
A interesujące są te linijki:
function calcPitch(x, y, z) {
return -(Math.atan(y / Math.sqrt(x * x + z * z)) * 57.2957795);
}
function calcRoll(x, y, z) {
return -(Math.atan(x / Math.sqrt(y * y + z * z)) * 57.2957795);
}
Sam wywnioskowałem tylko tyle, że w pierwszej funkcji jest obliczana
odległość między x i z z Pitagorasa i to dzieli y (nie wiem już po co).
A już wcale nie mam pojęcia dlaczego jest z tego robiony arcustangens i
mnożony przez 57.2957795!?!
za wszelką pomoc dzięki i pozdro
Szyk Cech
--
http://szyk.jcom.pl/
http://szyk.free.of.pl/
http://szykcech.cba.pl/
http://szyk.000webhostapp.com/
http://www.geocities.ws/szyk/
http://szyk.wex.pl/
-
2. Data: 2017-10-01 22:09:52
Temat: Re: Prosty przykład Qt - zagadka z graf. 3D
Od: "M.M." <m...@g...com>
On Sunday, October 1, 2017 at 5:09:51 PM UTC+2, Szyk Cech wrote:
> Witam
> Nie mam żadnego doświadczenia z grafiką 3D, a jak mniemam ten przykład
> jej dotyczy. I bardzo mnie ciekawi sens tego obliczenia.
> Przykład dotyczy prostej animacji kulki zgodnie ze wskazaniami
> akcelerometru w telefonie. Przykład jest dostępny na stronie:
> http://doc.qt.io/qtcreator/qtcreator-accelbubble-exa
mple.html
> A interesujące są te linijki:
>
> function calcPitch(x, y, z) {
> return -(Math.atan(y / Math.sqrt(x * x + z * z)) * 57.2957795);
> }
> function calcRoll(x, y, z) {
> return -(Math.atan(x / Math.sqrt(y * y + z * z)) * 57.2957795);
> }
>
> Sam wywnioskowałem tylko tyle, że w pierwszej funkcji jest obliczana
> odległość między x i z
Wyrażenie:
Math.sqrt(x * x + z * z)
Oblicza odległość pomiędzy punktem o współrzędnych [0,0] a [x,z] w
przestrzeni 2D, tudzież w 3D po odpowiednim rzucie prostopadłym.
z Pitagorasa i to dzieli y (nie wiem już po co).
> A już wcale nie mam pojęcia dlaczego jest z tego robiony arcustangens i
> mnożony przez 57.2957795!?!
Wsteczna inżynieria :)
To już się wywali gdy x=z=0.
y / Math.sqrt(x * x + z * z)
Co chcesz osiągnąc?
Pozdrawiam
-
3. Data: 2017-10-02 09:27:55
Temat: Re: Prosty przykład Qt - zagadka z graf. 3D
Od: slawek <f...@f...com>
On Sun, 1 Oct 2017 17:09:52 +0200, Szyk Cech <s...@o...pl> wrote:
> mnożony przez 57.2957795!?!
Radian w stopniach
-
4. Data: 2017-10-09 07:03:10
Temat: Re: Prosty przykład Qt - zagadka z graf. 3D
Od: bartekltg <b...@g...com>
On Sunday, October 1, 2017 at 5:09:51 PM UTC+2, Szyk Cech wrote:
> Witam
> Nie mam żadnego doświadczenia z grafiką 3D, a jak mniemam ten przykład
> jej dotyczy. I bardzo mnie ciekawi sens tego obliczenia.
> Przykład dotyczy prostej animacji kulki zgodnie ze wskazaniami
> akcelerometru w telefonie. Przykład jest dostępny na stronie:
> http://doc.qt.io/qtcreator/qtcreator-accelbubble-exa
mple.html
> A interesujące są te linijki:
>
> function calcPitch(x, y, z) {
> return -(Math.atan(y / Math.sqrt(x * x + z * z)) * 57.2957795);
> }
x,y,z to wektor.
Chcemy policzyć, ile wystaje z płaszczyzny xz.
Wystaje w kieruku y, a na płaszczyznie zostało sqrt(x^2+y^2).
Liczymy kąt pomiędzy wektorem (x,y,z) a płaszczyzną xz.
Szkolna trygonometria.
> function calcRoll(x, y, z) {
> return -(Math.atan(x / Math.sqrt(y * y + z * z)) * 57.2957795);
> }
To samo, ale kąt do płaszczyzny yz.
Nazwy sygerują luźny związek z tym:
https://en.wikipedia.org/wiki/Aircraft_principal_axe
s
> A już wcale nie mam pojęcia dlaczego jest z tego robiony arcustangens i
> mnożony przez 57.2957795!?!
Bo jak masz trójkąt prostokątny (a oś x jest prostopadła do czegokolwiek na zy...)
to kąt tego trójkąta mierzysz wstawiając proporcję długości boków
w arcus tangens.
Dziwna liczba to 180/pi, bo jakiś geniusz widać zaimlementował
trygonometrię w radianach. Co zrobić, patałachy sa wszędzie;-)
pzdr
bartekltg