Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: zxz в Dec 01, 2012, 21:11



Титла: 3D rotation
Публикувано от: zxz в Dec 01, 2012, 21:11
Здравейте,
от доста време се мъча да направя ротация по оста у . На кратко искам да направя нещо като 3Д шутър. В езика който ползвам имам готова ротация на у обаче там ротира около кординати 0,0,0 а аз искам да ротира от позицията в която съм аз. Пробвах с няколко формули за вектори работят обаче не знам защо аз се въртя в кръг. Качил съм една версия за линукс без ротация . Моля само да ми кажете дали работи и при възможност да ми помогнете , защото вече 2 дена се мъчим с един приятел.
http://dox.bg/files/dw?a=6d63eb42d0


Титла: Re: 3D rotation
Публикувано от: clegg в Dec 02, 2012, 17:21
Здравей,

Видях че използваш java. Бих ти препоръчал да започнеш, използвайки готови библиотеки/engine-и вместо имплементираш математиката сам (не че ще ти се размина ученето на математиката защото все пак ще трябва да разбираш какво правиш, но поне имплемнтацията ще е правилна).

Виж:
http://en.wikipedia.org/wiki/Java_OpenGL#See_also

Аз лично съм не съм експерт но съм се заигравал със LWJGL и Ardor и мисля че освен готовите имплементирани неща и работата с OpenGL, също ще можеш по лесно да намериш помощ за конкретни проблем във форумите на сътотвентите библиотеки както и готов код, макар да ти отнеме известно време в началото за да навлезеш.

Колкото до ротация около ос паралелна на y и минаваща през дадена точка, при положение че имаш функция, която прави ротация около y, струва ми се най-лесно би могъл да го направиш (не съм сигурен за най-правилно обаче) ако транслираш обекта, който искаш да завъртиш, така че точката от обекта коята искаш да е стационарна съвпадне с (0,0,0)
, демек вадиш от всички точки на обекта си координатите на стационарната точка, правиш завъртането и после ги добавяш обратно.