Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > pl.comp.programming > #30723 > unrolled thread
| Started by | Szyk Cech <szyk100@o2.pl> |
|---|---|
| First post | 2017-10-01 17:09 +0200 |
| Last post | 2017-10-08 22:03 -0700 |
| Articles | 4 — 4 participants |
Back to article view | Back to pl.comp.programming
Prosty przykład Qt - zagadka z graf. 3D Szyk Cech <szyk100@o2.pl> - 2017-10-01 17:09 +0200
Re: Prosty przykład Qt - zagadka z graf. 3D "M.M." <mmarszik@gmail.com> - 2017-10-01 13:09 -0700
Re: Prosty przykład Qt - zagadka z graf. 3D slawek <fake@fakeemail.com> - 2017-10-02 09:27 +0200
Re: Prosty przykład Qt - zagadka z graf. 3D bartekltg <bartekltg@gmail.com> - 2017-10-08 22:03 -0700
| From | Szyk Cech <szyk100@o2.pl> |
|---|---|
| Date | 2017-10-01 17:09 +0200 |
| Subject | Prosty przykład Qt - zagadka z graf. 3D |
| Message-ID | <oqr0fu$8ct$1@mx1.internetia.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-example.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/
[toc] | [next] | [standalone]
| From | "M.M." <mmarszik@gmail.com> |
|---|---|
| Date | 2017-10-01 13:09 -0700 |
| Message-ID | <02f32018-7566-4554-bf08-e706c53ad3fe@googlegroups.com> |
| In reply to | #30723 |
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-example.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
[toc] | [prev] | [next] | [standalone]
| From | slawek <fake@fakeemail.com> |
|---|---|
| Date | 2017-10-02 09:27 +0200 |
| Message-ID | <almarsoft.1898736615004774137@news.v.pl> |
| In reply to | #30723 |
On Sun, 1 Oct 2017 17:09:52 +0200, Szyk Cech <szyk100@o2.pl> wrote: > mnożony przez 57.2957795!?! Radian w stopniach
[toc] | [prev] | [next] | [standalone]
| From | bartekltg <bartekltg@gmail.com> |
|---|---|
| Date | 2017-10-08 22:03 -0700 |
| Message-ID | <b1a61ba5-94ba-4932-ae48-760c0b6be44b@googlegroups.com> |
| In reply to | #30723 |
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-example.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_axes
> 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
[toc] | [prev] | [standalone]
Back to top | Article view | pl.comp.programming
csiph-web