Страница 1 из 2

Как сделать гравитацию планеты ?

СообщениеДобавлено: 24 дек 2016, 16:37
JackZI
Нужно сделать центром гравитации определенную координату ( будет много планет , 3D ) и при приближении к центру гравитация усилялась, а при определленной высоте от центра она пропадала, и так с каждой планетой.
(c#) [curved_hands]

Re: Как сделать гравитацию планеты ?

СообщениеДобавлено: 24 дек 2016, 18:12
EagleOwle
Теоретически...
1. Определяем максимальную силу гравитации
2. Считаем расстояние от сюда до источника гравитации.
3. Находим Вектор3 направление на источник гравитации

Physics.gravity = направление гравитации * максимальная сила гравитации - расстояние до источника гравитации.

Re: Как сделать гравитацию планеты ?

СообщениеДобавлено: 25 дек 2016, 16:37
Cr0c
Зависимость гравитации от расстояния обратноквадратичная же... а Physics.gravity совсем не гравитация, а постоянно действующая сила в фиксированном направлении.

Re: Как сделать гравитацию планеты ?

СообщениеДобавлено: 26 дек 2016, 08:45
Syberex
JackZI писал(а):Нужно сделать центром гравитации определенную координату ( будет много планет , 3D ) и при приближении к центру гравитация усилялась, а при определленной высоте от центра она пропадала, и так с каждой планетой.
(c#) [curved_hands]

Надо писать скрипт:

Имеем:
1. Массив всех точек притяжения.
2. Рассчитанные дистанции максимального расстояния действия притяжения (" а при определленной высоте от центра она пропадала").
3. Силу притяжения для каждой точки.

Алгоритм:
1. Выбираем все действующие на тело точки притяжения из массива (если расстояние от точки притяжения до тела меньше равно расстояния действия (2)
2. Находим сумму векторов сил притяжения (длина каждого вектора = силе притяжения (3)).
3. Рассчитываем скорость и двигаем объект...

Re: Как сделать гравитацию планеты ?

СообщениеДобавлено: 26 дек 2016, 09:28
Cr0c
Syberex писал(а):3. Рассчитываем скорость

Ускорение же...

Re: Как сделать гравитацию планеты ?

СообщениеДобавлено: 26 дек 2016, 10:14
Woolf
Не оно?

Изображение

Re: Как сделать гравитацию планеты ?

СообщениеДобавлено: 26 дек 2016, 16:18
Syberex
В итоге нам нужна скорость, чтобы двигать объект :)
И вообще кто сказал, что автору нужна идеальная модель планетарной системы ... ему может уже вообще ничего не надо и он в тему не зайдет, он уже отдыхает, наигрался в геймдев #:-s

Re: Как сделать гравитацию планеты ?

СообщениеДобавлено: 26 дек 2016, 18:19
Cr0c
Syberex писал(а):В итоге нам нужна скорость, чтобы двигать объект :)

Скорость и без гравитации есть, которая есть СИЛА притяжения тел, а тело, двигающееся с постоянной скоростью - это тело, сумма действующих сил на которое равна НУЛЮ. Значит если есть сила - то будет ускорение, а это изменение скорости, а не задание её.

Re: Как сделать гравитацию планеты ?

СообщениеДобавлено: 27 дек 2016, 11:06
Syberex
Дак какое ускорение, если скорость постоянная? :D
Сумма действующих сил равна нулю вы говорите, а потом
Значит если есть сила - то будет ускорение, а это изменение скорости, а не задание её.

(P)

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

Re: Как сделать гравитацию планеты ?

СообщениеДобавлено: 27 дек 2016, 12:18
Cr0c
Syberex писал(а):Дак какое ускорение, если скорость постоянная? :D
Сумма действующих сил равна нулю вы говорите, а потом
Значит если есть сила - то будет ускорение, а это изменение скорости, а не задание её.

(P)

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

Не надо выдергивать из контекста, всё там правильно написано.
Хоть в учебнике читай: прямолинейное движение с постоянной скоростью если сумма действующих на тело сил равна нулю.

Re: Как сделать гравитацию планеты ?

СообщениеДобавлено: 27 дек 2016, 13:15
Syberex
Cr0c писал(а):
Syberex писал(а):3. Рассчитываем скорость

Ускорение же...

Я имел ввиду rigidbody.velocity ... куда же прикладывать ускорение я не знаю...
Рассчитывать придется в каждом кадре и прикладывать тоже, ведь тело будет двигаться положение будет меняться :) А ускорение не конечный результат.

Re: Как сделать гравитацию планеты ?

СообщениеДобавлено: 27 дек 2016, 14:18
Cr0c
Syberex писал(а):куда же прикладывать ускорение я не знаю...

Чумаааа... по определению ускорения понятно же - это изменение скорости, её производная. Как размер и направление изменения.

Re: Как сделать гравитацию планеты ?

СообщениеДобавлено: 29 дек 2016, 16:13
getAlex
Cr0c писал(а):
Syberex писал(а):3. Рассчитываем скорость

Ускорение же...

Силу же...

Woolf писал(а):Не оно?

Оно, но все делают вид, что ты ничего не запостил. Скорость и ускорение появляются в результате воздействия силы. Как воздействовать силой на объект думаю все знают

Re: Как сделать гравитацию планеты ?

СообщениеДобавлено: 29 дек 2016, 18:06
Cr0c
getAlex писал(а):
Cr0c писал(а):
Syberex писал(а):3. Рассчитываем скорость

Ускорение же...

Силу же...

Силу считать всё равно придется, а потом переводить в ускорение.

Re: Как сделать гравитацию планеты ?

СообщениеДобавлено: 30 дек 2016, 03:32
getAlex
Cr0c писал(а):Силу считать всё равно придется, а потом переводить в ускорение.

Нафига? Приложил силу, а скорость или ускорение возникло в результате силы. Считать тебе его не нужно. Ты его нигде не используешь.