Автор Тема: 3D rotation  (Прочетена 685 пъти)

zxz

  • Напреднали
  • *****
  • Публикации: 615
  • Distribution: Linux Mint 18.2
  • Window Manager: XFCE
    • Профил
3D rotation
« -: Dec 01, 2012, 21:11 »
Здравейте,
от доста време се мъча да направя ротация по оста у . На кратко искам да направя нещо като 3Д шутър. В езика който ползвам имам готова ротация на у обаче там ротира около кординати 0,0,0 а аз искам да ротира от позицията в която съм аз. Пробвах с няколко формули за вектори работят обаче не знам защо аз се въртя в кръг. Качил съм една версия за линукс без ротация . Моля само да ми кажете дали работи и при възможност да ми помогнете , защото вече 2 дена се мъчим с един приятел.
http://dox.bg/files/dw?a=6d63eb42d0
Активен

clegg

  • Новаци
  • *
  • Публикации: 2
    • Профил
Re: 3D rotation
« Отговор #1 -: Dec 02, 2012, 17:21 »
Здравей,

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

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

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

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

Активен