powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Четверговый кубик
51 сообщений из 51, показаны все 3 страниц
Четверговый кубик
    #39265391
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет кодеры.

Кубики заданы в левой системе координат (x,y,z) как точка центра и размер кубика.

Код: plaintext
1.
2.
3.
4.
5.
struct cube{
   double x,y,z;
   double size;
   // int attributesMask; // strength, matherial, orientation e.t.c.
}



Задан луч. С точкой начала (x1,y1,z1) и вектором направления (xv,yv,zv). Луч - бесконечен.
Но как-только он попадает в кубик - расчеты заканчиваются и дальнейшее продолжение
луча нам - неинтересно.

Код: plaintext
1.
2.
3.
4.
struct ray{
   double x1,y1,z1;
   double x1,yv,zv;
}



Если на пути луча встречается множество кубиков - то необходимо понять какой будет
пересекаться первым.

Необходим расчет пересечения луча и кубика.

Welcome.

P.S. Хардкод и асм - приветствуется.
P.P.S. Моар хардкода...
...
Рейтинг: 0 / 0
Четверговый кубик
    #39265399
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton, постыдись, такие задания студентам на лабах дают.
Просто нужно не полениться, взять ручку с бумажкой и расписать систему неравенств/уравнений, ничего сложного.
...
Рейтинг: 0 / 0
Четверговый кубик
    #39265411
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это для затравки. Чуть позже я опишу блоки кубиков.

P.S. Я пристыдился на 0.01 %
...
Рейтинг: 0 / 0
Четверговый кубик
    #39265621
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну блин. Самоеж главное не сказал. Грани кубика ортогональны системе координат.
Тоесть кубик (0,0,0) размером 1.0 будет лежать в начале координат и иметь вершины
(0.5,0.5,0.5), (-0.5,0.5,0.5)..... (-0.5,-0.5,-0.5) соответственно.
...
Рейтинг: 0 / 0
Четверговый кубик
    #39265665
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton, это облегчает твою задачу.
Подсказка: чтобы луч попал в кубик необходимо и достаточно чтобы хотя бы одна точка на луче оказалась внутри кубика. У луча всего одна степень свободы, поэтому достаточно одной переменной (любой координаты), остальные выражаются через нее. Таким образом получаем систему из 3-х двойных неравенств (положение между гранями куба) и одного простого (направление луча).
Продолжать?
...
Рейтинг: 0 / 0
Четверговый кубик
    #39265673
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Продолжай :)
...
Рейтинг: 0 / 0
Четверговый кубик
    #39265676
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Четверговый кубик
    #39265684
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
далее находится пересечение интервалов всех неравенств. Оно будет либо пустым (луч летит мимо), либо односвязным интервалом (луч попадает), причем границы интервала будут соответствовать точкам входа/выхода. Где какая - надеюсь разберешься.
Вроде все, дальше нужно учебник математики брать за 7 класс.
...
Рейтинг: 0 / 0
Четверговый кубик
    #39265689
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OMG! Да не будьте такими сердитыми. Кубик-то - четверговый. Это раз.

Второе - где ваш хардкод и ассЭмблер? Это два.
...
Рейтинг: 0 / 0
Четверговый кубик
    #39265696
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хардкор на работе. Завтра "прототип" сдавать инвестору, но одной из требований ивестора, что бы прототип работал в режиме 24x7 )))

Ни ТЗ, ни дизайна, ни нормального тестирования/мониторинга т.к. "прототип", но 24x7 )))
...
Рейтинг: 0 / 0
Четверговый кубик
    #39265698
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно. Нелетает кубик. Попрошу дневального закрыть топик.
...
Рейтинг: 0 / 0
Четверговый кубик
    #39265709
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevХардкор на работе.
+1
mayton, дело не в кубиках, просто неправильный четверг выбрал: последний день месяца/квартала/полугодия - этож дедлайн у многих, а тут еще сезон отпусков в разгаре - за себя трудись и за отдыхающего
...
Рейтинг: 0 / 0
Четверговый кубик
    #39265717
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну извини. У меня тот долгий джоб компилируется....
...
Рейтинг: 0 / 0
Четверговый кубик
    #39265832
д0k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid KudryavtsevХардкор на работе. Завтра "прототип" сдавать инвестору, но одной из требований ивестора, что бы прототип работал в режиме 24x7 )))

Ни ТЗ, ни дизайна, ни нормального тестирования/мониторинга т.к. "прототип", но 24x7 )))

А что прототип не проработает неделю без рестарта ?

:)
...
Рейтинг: 0 / 0
Четверговый кубик
    #39265852
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
д0kА что прототип не проработает неделю без рестарта ?
Он бы два дня проработал (((

1) Он с I-net через tor данные тянет, tor и источник имеет тенденцию периодически отваливаться.
2) тянет данные в over 150 потоков на один исходный запрос и примерно в таком же кол-ве и считает ))) секунд по 30-60

Т.ч. повесить - раз плюнуть. Пару раз на релоад нажать и на мой взгляд под виснуть должно надолго и качественно )))

нормальных исходных данных нет (очень много бабла стоят), приходится из Инета тянуть.
...
Рейтинг: 0 / 0
Четверговый кубик
    #39265853
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и хостится все на паре tiny машинок из Amazon EC2 (1 GB RAM) )))
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266079
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борисmayton, постыдись, такие задания студентам на лабах дают.
Просто нужно не полениться, взять ручку с бумажкой и расписать систему неравенств/уравнений, ничего сложного.

может быть тут и нет ничего сложного, но вашего решения я не увидел.
Вопрос был не о том, как определить встретит ли луч кубик, а о том, как за минимальную асимптотику найти такой кубик, если он конечно существует
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266091
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский БорисТаким образом получаем систему из 3-х двойных неравенств (положение между гранями куба) и одного простого (направление луча).Расстояния от центров кубов до прямой(луча) не быстрее будет подсчитать? А пересёкшихся(по сферам радиусом a*sqrt(3)), начиная с ближайших, уже допроверить "по-честному".
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266102
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirСоколинский БорисТаким образом получаем систему из 3-х двойных неравенств (положение между гранями куба) и одного простого (направление луча).Расстояния от центров кубов до прямой(луча) не быстрее будет подсчитать? А пересёкшихся(по сферам радиусом a*sqrt(3)), начиная с ближайших, уже допроверить "по-честному".А зачем?
Вся "честная" проверка займет максимум 20 строк кода без циклов.
Теоретически нужно еще отдельно вырожденный случай проверить, когда луч направлен перпендикулярно оси X, но формулировка задания такое исключает.
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266103
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем случае луч (выстрел) пересекает 6 плоскостей (Plane[0..5]) которые образованы гранями куба.
Почему удобно начинасть с плоскостей? Ну... я так изначально задал условия. Грани всегда
будут компланарны к плоскостям XOY, XOZ,YOZ.

Из этих 6 плоскостей нас будут интересовать только от 1 до 3х которые обращены лицевой гранью
к источнику луча (x1,y1,z1). Решаем 3 уравнения пересечения луча с плоскостью Plane[i].

Из трех результирующих точек только одна будет лежать на поверхности куба.

Над последней проверкой я еще думаю. Как ее сделать с наименьшим числом операций.
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266242
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да. Некоторые краевые случаи. Когда луч смотрит в противоположное от куба направление - решения нет.

Когда луч - параллелен (компланарен) к плоскости ?

Я щас не могу навскидку вспомнить форумулу но три произвольных вектора компланарны, когда
их смешанное произведение равно нулю. (В данной задаче нам 0 не нужен мы можем брать очень
малую величину 0.00000001 в double и считать это нулем).

При чем здесь 3 вектора? Плоскость можно задать (емнип) 3 формами уравнений. Каноническое.
Вида Ax + By + Cz + D = 0 либо различные его варианты с нормированием коэффициентов.

Наиболее удобная на мой взгляд форма задания плоскости для нашей задачи - это 3 точки
или 2 вектора (порядок важен). Это всё одно и то-же и от одной формулы к другой можно
переходить. Единственное - договориться о порядке лицевой и изнаночной граней.

Для нашего случая (плоскости всегда компланарны к ZOX, ZOY .....) формула упрощается т.к.
из нее уходит 1 коэффициент.
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266345
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
чтобы исключить вырожденные случаи можно параметрическое задание луча использовать: x=x0+Vx*t; y=y0+Vy*t, z=z0+Vz*t, t>0.
Тогда все неравенства будут по виду одинаковыми и одинаково решаться: если соответствующий коэффициент равен нулю, проверяем попадание x0 в диапазон, если нет - находим t1/t2 на границах проверяем на положительность.
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266350
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если честно я не понял зачем нужно вводить параметр t.
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266355
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По сути мы ищем функцию которая вернет нам точку попадания в блок кирпичиков. Либо null если мы промахнулись.

Код: plaintext
1.
2.
3.
4.
5.
6.
point3d intersectRay(cube *pCube, ray *pRay){
     ......
     return point3d(....);
     .....
     return null;
}
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266358
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
так будет работать всегда, даже если коэфициент при x нулевой.
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266375
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но у нас "всегда" не будет получаться!

А если стрельба параллельно кубику? Как?
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266415
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Я уже вроде написал. Как то так

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
uses Math;
Type
  TCoordResult=(Outside, FullInside, StartInside, Cross);

function GetCoordResult(X0, Cx, XLeft, XRight: double; out Tl, Th: double): TCoordResult;
var t1, t2: double;
begin
   if isZero(CX) then begin
     if InRange(X0, XLeft, XRight)
       then result:=FullInside
       else result:=Outside;
  end
  else begin
    t1:=(XLeft-X0)/Cx;
    t2:=(XRight-X0)/Cx;

    Tl:=min(t1, t2);
    Th:=max(t1, t2);

    if TH<0
      then Result:=Outside
    else if Tl<0 then begin
       Tl:=0;
       Result:=StartInside;
    end
    else Result:=Cross
  end;
end;
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266498
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поскольку кубик - суть блок кирпичей то мне недостаточно знать факта Cross.

Мне нужно получить координаты (x,y,z) куда именно попал выстрел чтобы расчитать
damage для кирпичика.
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266522
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если нигде не ошибся:
1. Луч будет пересекать кубик, если существует такое n, при которых следующая система неравенств имеет смысл
x1+xv*n - x <= size/2;
x1+xv*n - x >= -size/2;

y1+yv*n - y <= size/2;
y1+yv*n - y >= -size/2;

z1+zv*n - z <= size/2;
z1+zv*n - z >= -size/2;

2. ну и решение этой системы в чём-то среднем между кодом и псевдокодом :)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
nMax = someMaxValue;
nMin = -someMaxValue;

if(xv>0){
	nMax = min(nMax, (size/2 + x - x1)/xv)
	nMin = max(nMin, (-size/2 + x - x1)/xv)
}elseif(xv<0){
	nMin = max(nMin, (size/2 + x - x1)/xv)
	nMax = min(nMax, (-size/2 + x - x1)/xv)
}elseif(x1>size/2 || x1<-size/2){
	nMin = someMaxValue;
	nMax = -someMaxValue;
}

if(yv>0){
	nMax = min(nMax, (size/2 + y - y1)/yv)
	nMin = max(nMin, (-size/2 + y - y1)/yv)
}elseif(yv<0){
	nMin = max(nMin, (size/2 + y - y1)/yv)
	nMax = min(nMax, (-size/2 + y - y1)/yv)
}elseif(y1>size/2 || y1<-size/2){
	nMin = someMaxValue;
	nMax = -someMaxValue;
}

if(zv>0){
	nMax = min(nMax, (size/2 + z - z1)/zv)
	nMin = max(nMin, (-size/2 + z - z1)/zv)
}elseif(zv<0){
	nMin = max(nMin, (size/2 + z - z1)/zv)
	nMax = min(nMax, (-size/2 + z - z1)/zv)
}elseif(z1>size/2 || z1<-size/2){
	nMin = someMaxValue;
	nMax = -someMaxValue;
}

if(nMin<0 && nMax>0) nMin = 0;



3. Если мы каждому кубику присвоим его nMin, то первым пересечённым будет кубик с самым маленьким неотрицательным nMin


P.S. Надеюсь что всё-таки нигде не ошибся.
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266526
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПоскольку кубик - суть блок кирпичей то мне недостаточно знать факта Cross.

Мне нужно получить координаты (x,y,z) куда именно попал выстрел чтобы расчитать
damage для кирпичика.

Код: plaintext
1.
2.
3.
xCross = x1+xv*n;
yCross = y1+yv*n;
zCross = z1+zv*n;



так получаем координаты попадания. Отняв от них координаты кубика, получим точку попадания на кубике.
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266528
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эх. всё-таки кое-что забыл. Кубик будет пересечён в принципе только тогда, когда nMin<=nMax. То есть, надо не просто искать найменьшее неотрицательное nMin, но и отбрасывать те варианты, где nMin>nMax
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266530
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.

Другое дело. Начинаю писать юнит-тесты.

Дальше - будет хуже .

Пойдут стрельбы по баллистической траектории.

Надо-ж заюзать пушки мать их так....
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266535
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёрэх. всё-таки кое-что забыл. Кубик будет пересечён в принципе только тогда, когда nMin<=nMax. То есть, надо не просто искать найменьшее неотрицательное nMin, но и отбрасывать те варианты, где nMin>nMax
Давайте как-то уходить от min-max.

У меня куб имеет жесткую ориентацию. Его стороны по сути смотрят на Север-Юг Запад-восток
и есть верх и низ. Или три двоичных числа. Три битика.

От 000 до 111 и по этому коду я буду знать какая грань кубика задета.
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266548
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonСпасибо.

Другое дело. Начинаю писать юнит-тесты.

Дальше - будет хуже .

Пойдут стрельбы по баллистической траектории.

Надо-ж заюзать пушки мать их так....

Без учёта ветра и трения?

Если да, то достаточно видоизменить вторую пару неравенств:
y1+(yv*n - grav*n*n/2) - y <= size/2;
y1+(yv*n - grav*n*n/2) - y >= -size/2;

просто решение этой пары неравенств превратится в квадратное уравнение. Не намного сложнее :)
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266551
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Плииннн... ну давайте пока без ветра. Ну чесслово это не так важно как логика попаданий в кубы.
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266556
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПрограмёрэх. всё-таки кое-что забыл. Кубик будет пересечён в принципе только тогда, когда nMin<=nMax. То есть, надо не просто искать найменьшее неотрицательное nMin, но и отбрасывать те варианты, где nMin>nMax
Давайте как-то уходить от min-max.

У меня куб имеет жесткую ориентацию. Его стороны по сути смотрят на Север-Юг Запад-восток
и есть верх и низ. Или три двоичных числа. Три битика.

От 000 до 111 и по этому коду я буду знать какая грань кубика задета.

От min-max уйти невозможно, потому как у тебя есть ограничения по условию. То есть, это же кубики, а не бесконечные плоскости.

Я посчитал пересечение в целом с кубиком (то есть пересечение с каждой из проекций, а потом взял общий для трёх промежуток). Если считать пересечение с каждой гранью, гемора и кода будет намного больше. Придётся учитывать ориентацию грани (ведь в одном из направлений она плоская, а в других двух - нет).

Если задача имеет практическое применение (как я понимаю речь о написании игры), то сделай лучше с min-max. ;)
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266569
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я уверен что эта задача решается без функций min-max
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266579
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
type
  TBlockInfo=packed record     A0, AC,  BL,  BH: double; end;
  TCoord=(x, y, z);
  TArBlockInfo=array[TCoord] of TBlockInfo;

function CheckBlock(Info: TArBlockInfo; var T: double): boolean;

  Type
    TCoordResult=(Outside, FullInside, StartInside, Cross);

  function GetCoordResult(X0, Cx, XLeft, XRight: double; out Tl, Th: double): TCoordResult;
  var t1, t2: double;
  begin
     if isZero(CX) then begin
       if InRange(X0, XLeft, XRight)
         then result:=FullInside
         else result:=Outside;
    end
    else begin
      t1:=(XLeft-X0)/Cx;
      t2:=(XRight-X0)/Cx;

      Tl:=min(t1, t2);
      Th:=max(t1, t2);

      if TH<0
        then Result:=Outside
      else if Tl<0 then begin
         Tl:=0;
         Result:=StartInside;
      end
      else Result:=Cross
    end;
  end;

var
  AssignValues: set of (L, H);
  MaxTL, MinTH, TL, TH: double;
  I: TCoord;
  CRes: TCoordResult;
begin
  Result:=False;
  AssignValues:=[];
  MinTH:=0; MaxTL:=0; //чисто чтобы компилятор не выдавал предупреждений

  for i:=low(TCoord) to high(TCoord) do begin

    with Info[i] do
      CRes:=GetCoordResult(A0, AC, BL, BH, TL, TH);

    case CRes of
      Outside: exit;
      FullInside: Continue;

      StartInside: //есть только время вылета
        if (L in AssignValues) and (TH<MaxTL) //вылетает раньше чем влетает по другой координате, вываливаемся
          then exit
        else begin
          if (H in AssignValues)
            then MinTH:=Min(TH, MinTH)
            else MinTH:=TH;

          include(AssignValues, H);
        end;
     else //cross
       if ((L in AssignValues) and (TH<MaxTL)) or //вылетает раньше чем влетает по другой координате
          ((H in AssignValues) and (TL>MinTH))    //влетает раньше чем вылетает по другой координате
          then exit;

       if L in AssignValues
         then MaxTL:=Max(TL, MaxTL)
         else MaxTL:=TL;

        if (H in AssignValues)
          then MinTH:=Min(TH, MinTH)
          else MinTH:=TH;

       AssignValues:=[L, H];
     end;
  end;

  if L in AssignValues then begin
    T:=MaxTL;
    Result:=true;
  end
  else if H in AssignValues then begin
    //точка старта находится внутри куба. Ругаться или нет - решай сам
    T:=MinTH;
    Result:=true;
  end
  else begin //все вектора скоростей нулевые,
    // ругаемся

  end;
end;
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266581
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис, ну это круто конечно. Но мне придется портировать это на JavaScript едрен-батон.
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266584
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
еще скажи, что это кто-то за тебя должен сделать.
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266589
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спакуха.... тяпницаж.
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266654
д0k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonСпасибо.

Другое дело. Начинаю писать юнит-тесты.

Дальше - будет хуже .

Пойдут стрельбы по баллистической траектории.

Надо-ж заюзать пушки мать их так....

Уверен ?
Для изучения траектории пули приняты следующие определения:
определения:
Точка вылета — центр дульного среза ствола. Точка вылета является началом траектории.

Горизонт оружия — горизонтальная плоскость, проходящая через точку вылета.

Линия возвышения — прямая линия, являющаяся продолжением оси канала ствола наведенного оружия.

Плоскость стрельбы — вертикальная плоскость, проходящая через линию возвышения.

Угол возвышения — угол, заключенный между линией возвышения и горизонтом оружия. Если этот угол отрицательный, то он называется углом склонения (снижения).

Линия бросания — прямая линия, являющаяся продолжением оси канала ствола в момент вылета пули.

Угол бросания — угол, заключенный между линией возвышения и линией бросания.

Угол вылета — угол, заключенный между линией возвышения и линией бросания.

Точка падения — точка пересечения траектории с горизонтом оружия.

Угол падения — угол, заключенный между касательной к траектории в точке падения и горизонтом оружия.

Полная горизонтальная дальность — расстояние от точки вылета до точки падения.

Окончательная скорость — скорость пули (гранаты) в точке падения.

Полное время полета — время движения пули (гранаты) от точки вылета до точки падения.

Вершина траектории — наивысшая точка траектории над горизонтом оружия.

Высота траектории — кратчайшее расстояние от вершины траектории до горизонта оружия.

Восходящая ветвь траектории — часть траектории от точки вылета до вершины, а от вершины до точки падения — нисходящая ветвь траектории.

Точка прицеливания (наводки) — точка на цели (вне ее), в которую наводится оружие.

Линия прицеливания — прямая линия, проходящая от глаза стрелка через середину прорези прицела (на уровне с ее краями) и вершину мушки в точку прицеливания.

Угол прицеливания — угол, заключенный между линией возвышения и линией прицеливания.

Угол места цели — угол, заключенный между линией прицеливания и горизонтом оружия. Этот угол считается положительным (+), когда цель выше, и отрицательным (-), когда цель ниже горизонта оружия.

Прицельная дальность — расстояние от точки вылета до пересечения траектории с линией прицеливания. Превышение траектории над линией прицеливания — кратчайшее расстояние от любой точки траектории до линии прицеливания.

Линия цели — прямая, соединяющая точку вылета с целью.

Наклонная дальность — расстояние от точки вылета до цели по линии цели.

Точка встречи — точка пересечения траектории с поверхностью цели (земли, преграды).

Угол встречи — угол, заключенный между касательной к траектории и касательной к поверхности цели (земли, преграды) в точке встречи. За угол встречи принимается меньший из смежных углов, измеряемый от 0 до 90 градусов.


:)
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266655
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Док ты што артилеристом был?
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266660
д0k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonДок ты што артилеристом был?


В армии сапером общие навыки получил.
а жизнь сейчас такова , что приоидтся держать нос поверту.

От моего дома до реальной войны всего то 200 км :(

В списке еще этого нехватает
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266662
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ешкин крот! У меня не симулятор а аркада. И куда мне с этими "девиациями" ?
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266665
д0k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonЕшкин крот! У меня не симулятор а аркада. И куда мне с этими "девиациями" ?

Де рива ция как раз та фича которая придаст игровому движку
неповторимость и новых потенциальных игроков любящих
естественные фичи приближенные к реальности...

Ты же не для дебилов игру делаешь ,
а для целевой аудитории располагающей определенным количеством денег,
которыми они потенцильно готовы с тобоей поделиться...
Если люди располагают свободными деньгами,
значит по жизни они не дебилы-неучи-идиоты...


Или я ошибся ?
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266678
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
д0k,

уйма определений... а зачем они в контексте этой темы?

Если деривация хоть связана с ней, так как описывает отклонение, хотя достаточно незначительное, то остальное является просто терминами не относящимися к результату стрельбы.

P.S. Изюминкой игры может быть уточнение повреждений объектов (детализация повреждений объектов и персонажей) или разного рода рикошеты, осколки и т.д.
По поводу же деривация - это малоизвестный факт, и у игроков "среднего ума" будет вызывать недоумение, когда они будут промазывать из разных снайперских винтовок, хотя прицел был наведён точно на цель.

И если так, то более значимое отклонение даёт плотность воздуха (трение с ним). Так летом пуля летит намного дальше, чем зимой, что обязательно надо учитывать при стрельбе на большие расстояния. Лучше тогда уж это учесть... Игроку легче принять то, что пуля отклоняется по вертикали, чем то, что она отклоняется по горизонтали ))

Это так... моё мнение :)
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266688
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из личных наблюдений. Игра-симулятор не интересна аудитории. Да и не собираюсь
я меряться хоботом с Wot. А вот веселая сетевая аркада где можно убить время
в конце трудовой недели - это да. Это по мне.
...
Рейтинг: 0 / 0
Четверговый кубик
    #39266727
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonА вот веселая сетевая аркада где можно убить время
в конце трудовой недели - это да
зачем убивать время, есть масса практических задач, что характерно - из смежных областей
...
Рейтинг: 0 / 0
Четверговый кубик
    #39271585
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
что то я не вижу нужды в закрытии топика.
апд.
если будешь настаивать, то закрою.
...
Рейтинг: 0 / 0
Четверговый кубик
    #39271599
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tchingiz, настаивать не буду. Пускай себе висит.
...
Рейтинг: 0 / 0
51 сообщений из 51, показаны все 3 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Четверговый кубик
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]