Показать сообщение отдельно
Старый 23.04.2012, 17:19   #7
Halk-DS
Разработчик
 
Аватар для Halk-DS
 
Регистрация: 09.08.2006
Адрес: Украина
Сообщений: 431
Написано 65 полезных сообщений
(для 53 пользователей)
Ответ: Пишем свой LinePick для своего Minecraft

Сообщение от pax Посмотреть сообщение
Собственно перед расчетами все координаты поделить на размер клетки, а после домножить. (Привести в единичную систему)
В коде есть -.001 и +.001, т.е. с каждой итерацией будет расти ошибка?
Собственно да. Есть немного говнокода. Это можно немного подумать и исправить, но оч сильно хотелось использовать функцию в деле, поэтому пришлось поторопится. Как я и писал, еще немного позднее попробую подправить код и этот недостаток попробую учесть.
п.с. При дальности пика куба в 10 клеток(это уже неиграбельный параметр) погрешность становится в 0.01. Имхо заметно только нам с вами

Сообщение от Nuprahtor Посмотреть сообщение
Это хорошая статья.
Когда можно будет погонять .exe пример?
Я хочу эту функцию применить при перерасчете передвижения игрока. (копать он уже может). Редактор тоже есть. Короче пара мелочей и буду выкладывать. (надеюсь в пределах этой недели будет.)

Сообщение от Igor Посмотреть сообщение
А может, искать пересечения луча не с кубиками, а с плоскостями? Потом их округлять и получать кубик.
(Берём много плоскостей - параллельных XOY, XOZ, YOZ и отличающихся на целое число третьей координатой. Ищем точки пересечений. Потом у этих точек округляем координаты и получаем положение кубика)
Идей и теорий куча, вопрос в том кто возьмется за их реализацию? А потом еще и сумеет качественно поделится этим с народом. Была еще одна идея похожа на эту. Вектор проходящий через грань представляется как вектор принадлежащий прямой. Точка Dest(x2,y2,z2) - просто как точка (в нашем случае это был конец вектора). Должно было высчитывается смещение точки относительно прямой и по переменной смещения находилась проткнутая сторона куба и т.д. Но мне с косинусом угла чот больше понравилось.


Ну а за полурусский язык простите, с чем словарь в мозилле справляется так и выкладываю
Ошибки вроде подправил.
Нашел главный баг. Не предусмотрено деление на ноль практически везде. Омг
(Offline)
 
Ответить с цитированием